[C] Matrice 10*10

Bonjour,
mon programme doit alimenter un tableau 10X10, avec des nombres de 1 à 100!
puis on doit rechercher le minimum, le maximum. puis demander un nombre à l'utilisateur et l'afficher autant de fois qu'il se trouve dans le tableau.
je dois dire que je bloque
peut-on m'aider?

#include <stdio.h>
#include<stdlib.h>
#include <time.h>

void main (void)

{

int tab[10][10];
int i,j,nbr,min,max,nbre;

srand(time(NULL));
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{

nbr=rand()%100+1;
tab[i][j]= nbr;

printf( "%d\t", tab[i][j] );

}

}

/* recherche du minimu et maximum*/
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{

if( tab[i][j] < tab[i][j] + 1 )
{
min= tab[i][j];
printf(" le minimum %d", min);
}
else
{
max=tab[i][j];
printf("le maximum %d ",max);
}

}
/* demande d'un nombre et affichage plusieurs fois si utile*/
printf("entrez un nombre");
scanf("%d",&nbre);

}

}

6 réponses

  1. Modérateur
    La boucle de remplissage me semble OK
    Pour ca:
     if( tab[i][j] < tab[i][j] + 1 )
    {
    min= tab[i][j];
    printf(" le minimum %d", min);
    }
    else
    {
    max=tab[i][j];
    printf("le maximum %d ",max);
    }


    Ca ne peux pas marcher... tu compares une valeur aveccette valeur +1. Donc ton test est toujours VRAI.
    De plus tes deux "printf" pour le min et le max sont dans la boucle donc ils vont s'afficher a chaque fois, alors que tu veux les aficher seulement à la fin.
    Ton soucis est au niveau de la comparaison
    il faut comparer la valeur du tableau à "min" et a "max" puis agir en conséquence
    0
    1. bonjour
      j'ai le même problème mis je bloque au niveau des comparaison avec le min et max!
      peut-on m'aider? merci
      0
      1. Contributeur
        L'affichage et le calcul du min et max peuvent se faire dans la même boucle (gain de temps) comme suit :

         int tab[10][10];
        int i,j,nbr,min,max,nbre = 0;
        
        
        srand(time(NULL));
        for(i=0;i<10;i++)
        {
        for(j=0;j<10;j++)
        {
        
        nbr=rand()%100+1;
        tab[i][j]= nbr;
        
        // --- Calcul min & max
        if ( nbr < min )
           min = nbr
        if ( nbr > max )
           max = nbr
        
        printf( "%d\t", tab[i][j] );
        
        }
        
        printf("\n"); // --- Saut de ligne pour formater sous forme de tableau, c'est toujours mieux
        
        } 
        
        


        Ensuite il ne te reste plus qu'à demander la valeur à l'utilisateur puis compter dans ton tableau (en faisant un parcours) le nombre d'occurence de ce nombre.

        0
        1. bonjour
          j'ai essayé d'executer ce programme chez moi mais il n'affiche pas ni le max et ni le min, comment fait-on?
          merci
          0
          1. il faut rajouter des printf pour le min et le max
            printf("minimum : %d\n",min);
            printf("maximum : %d\n",max);
            0
        2. voici le programme mais il ne marche toujours peut-on me corriger?

          et comment fais-ton pour demander un nombre à l'utilisateur et l'afficher autant de fois qu'il se trouve dans le tableau.

          merci
          #include <stdio.h>
          #include<stdlib.h>
          #include <time.h>

          void main (void)
          {
          int tab[10][10];
          int i,j,nbr,min,max,nbre = 0;

          srand(time(NULL));
          for(i=0;i<10;i++)
          {
          for(j=0;j<10;j++)
          {

          nbr=rand()%100+1;
          tab[i][j]= nbr;

          // --- Calcul min & max
          if ( nbr < min )

          min = nbr;

          if ( nbr > max )

          max = nbr;

          printf( "%d\t", tab[i][j] );

          }
          printf("maximum : %d\n",max);
          printf("minimum : %d\n",min);
          printf("\n"); // --- Saut de ligne pour formater sous forme de tableau, c'est toujours mieux

          }
          /* demande d'un nombre et affichage plusieurs fois */
          printf("entrez un nombre");
          scanf("%d",&nbre);
          }
          0
          1. essaye ça :
            #include <stdio.h>
            #include<stdlib.h>
            #include <time.h>
            
            
            void main (void)
            {
            int tab[10][10];
            int i,j,nbr,min,max,nbre;
            
                srand(time(NULL));
                for(i=0;i<10;i++)
                {
                    for(j=0;j<10;j++)
                    {
                        nbr=rand()%100+1;
                        tab[i][j]= nbr;
                        printf( "%d\t", tab[i][j] );
                    }
                printf("\n");
                }
            
            min=max=tab[0][0];
            
            /* recherche du minimu et maximum*/
            for(i=0;i<10;i++)
            {
                for(j=0;j<10;j++)
                {
                    if( min > tab[i][j]  )
                    {
                        min= tab[i][j];
                    }
                    if( max < tab[i][j]  )
                    {
                        max=tab[i][j];
                    }
                }
            }
            
            printf("minimum : %d\n",min);
            printf("maximum : %d\n",max);
            }
            0