Exercice c

julie -  
 dijasma -
Bonjour, comment faire pour
1/compter le nombre de fois que le nombre encodé se trouve dans le tableau et afficher le nombre de fois qu'il apparait!
2/ afficher tous les nombres mais une seule fois chacun même si il se trouve plusieurs fois!
je suis bloqué pouvez vous m'aider ? merci

#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("le minimum est de : %d\n",min);
printf("le maximum est de: %d\n",max);

printf("\n");

/* demande d'un nombre et affichage plusieurs fois */

printf("entrez un nombre\n");
scanf("%d",&nbre);

if ( nbre == tab[i][j])

{
nbre = tab[i][j];
printf("nombre encoder a ete trouver %d fois",nbre);
}
else
printf("le nombre ne s'y trouve pas\n");

}
Configuration: Windows XP
Firefox 2.0.0.10

4 réponses

  1. augustepirou
     
    Bonjour,

    pour le premier point tu as presque tout fait :

    Declares une nouvelle variable integer puisque tu as 100 cellules à verifier
    int nb_fois;

    Initialises la variable
    nb_fois=0

    Effectue une boucle pour scruter le tableau entier
    // Y a moyen de faire cela par pointeur
    for(i=0;i<10;i++)
    {
    for(j=0;j<10;j++)
    {
    if ( nbre == tab[i][j]) nb_fois = nb_fois+1;
    // if ( nbre == tab[i][j]) nb_fois++;
    }
    }

    Cela ne me semble pas correct mais je ne trompe peut etre
    min=max=tab[0][0];
    //min=tab[0][0];
    //max=min;

    je te laisse 1 heure pour travailler sur le 2eme point

    tchao
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    essaie ça
    #include <stdio.h>
    #include<stdlib.h>
    #include <time.h>
    
    
    int main (void)
    {
      int tab[10][10];
      int i, j, nbr, min, max, nbre, freq;
      freq = 0;
    
      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 ("le minimum est de : %d\n", min);
      printf ("le maximum est de: %d\n", max);
    
      printf ("\n");
    
      /* demande d'un nombre et affichage plusieurs fois */
    
      printf ("entrez un nombre\n");
      scanf ("%d", &nbre);
    
      for (i = 0; i < 10; ++i){
        for (j = 0; j < 10; ++j){
          if (nbre == tab[i][j])
            freq++;
        }
      }
    
      if (freq > 0)
        printf ("nombre encoder a ete trouver %d fois\n", freq);
      else
        printf ("le nombre ne s'y trouve pas\n");
      return 0;
    }
    
    0
  3. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    pour la deuxieme question tu peux mettre les nombres dans un tableau et avec une petite fonction tu fait en sorte qu'ils n'apparaissent qu'une seule fois
    #include <stdio.h>
    #include<stdlib.h>
    #include <time.h>
    
    int cherche_nb(int nb, int t[100], int taille)
    {
        int i;
        for(i=0;i<taille;i++)
            if(nb==t[i])
                return 0;
            return 1;
    }
    
    int main (void)
    {
      int tab[10][10],tab_nb[100];
      int i, j, nbr, min, max, nbre, freq, nb_a_cher, taille=1;
      freq = 0;
    
      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 ("le minimum est de : %d\n", min);
      printf ("le maximum est de: %d\n", max);
    
      printf ("\n");
    
      /* demande d'un nombre et affichage plusieurs fois */
    
      printf ("entrez un nombre\n");
      scanf ("%d", &nbre);
    
      for (i = 0; i < 10; ++i){
        for (j = 0; j < 10; ++j){
          if (nbre == tab[i][j])
            freq++;
        }
      }
    
      if (freq > 0)
        printf ("nombre encoder a ete trouver %d fois\n", freq);
      else
        printf ("le nombre ne s'y trouve pas\n");
    
        for(i=0;i<10;i++)
            for(j=0;j<10;j++)
            {
                nb_a_cher=tab[i][j];
                if(cherche_nb(nb_a_cher, tab_nb, taille) == 1)
                {
                    tab_nb[taille-1]=nb_a_cher;
                    taille++;
                }
            }
    printf("\nvoici tous les nombres du tableau qui apparaissent au moins une fois :");
    printf("\n");
        for(i=0;i<taille-1;i++)
            printf("%d ",tab_nb[i]);
      return 0;
    }
    
    0
  4. dijasma
     
    je cherche la programmation en c de nombre d'Armstrong
    0