[C] Matrice 10*10

Fermé
kai - 28 nov. 2007 à 18:38
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 30 nov. 2007 à 18:59
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 mardi 3 juillet 2001 Statut Modérateur Dernière intervention 7 novembre 2023 169
28 nov. 2007 à 18:48
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
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 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
30 nov. 2007 à 17:12
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
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 jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
30 nov. 2007 à 18:01
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
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 jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
30 nov. 2007 à 18:59
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