[C] Matrice 10*10
kai
-
mype Messages postés 2459 Date d'inscription Statut Membre Dernière intervention -
mype Messages postés 2459 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);
}
}
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
-
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 -
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 -
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.
-
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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);
} -
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); }