[C] Matrice 10*10

kai -  
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   -
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);



}


}
A voir également:

6 réponses

Castor Messages postés 17858 Date d'inscription   Statut Modérateur Dernière intervention   170
 
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
alex
 
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
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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
jule
 
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
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
il faut rajouter des printf pour le min et le max
printf("minimum : %d\n",min);
printf("maximum : %d\n",max);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jules
 
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
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
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