Programme en c

Résolu
fadim Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
bonjour , quelqu'un pourrait m'aider a ecrire en c un programme qui demande à l'utilisateur de taper 10 entiers compris entre
0 et 20 qui seront stockés dans un tableau. Le programme cherche ensuite le nombre de fois qu'on
a tapé un 0, le nombre de 1, le nombre de 2, ..., le nombre de 20.
merci.

4 réponses

  1. le hollandais volant Messages postés 5294 Statut Membre 1 059
     
    Salut !

    Ben je veux bien t'aider pour le principe :

    Tu fais une boucle for pour i variant de 0 à 20 qui demande à l'utilisateur de taper un nombre (scanf) et qui le place dans la case "i" du tableau.

    ensuite, tu fais deux boucles imbriqués.
    La première qui incremante sur la valeur que tu veux compter (par exemple le "1") et l'autre, ou tu crée un nouveau tableau qui ajoute +1 à chaque fois que la valeur est rencontré dans le tableau.

    0
  2. fadim Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    ok merci
    0
  3. Utilisateur anonyme
     
    Pas besoin de conserver la valeur saisie par l'utilisateur (après je ne sais pas si pour ton exercice tu dois obligatoirement les stocker...).

    Bien plus simple et avec une seule boucle :
    Tu crées une liste de 21 valeurs que tu initialises à 0 (pour les compteurs de 0, de 1, de 2 ... de 19, de 20).
    Dans une seule boucle for() rebouclant 10 fois, tu fais un scanf("%d", &n); (en admettant que 'n' est un int), et tu as juste à incrémenter compteur[n] (en admenttant que 'compteur' est un int[21]).

    //déclaration des 21 compteurs 
    int compteur[21]; 
    
    //initialisation des 21 compteurs à 0 
    for(i = 0; i <= 20; ++i) 
        compteur[i] = 0; 
    
    //demande de 10 valeurs entre 0 et 20 
    for(i = 0; i < 10; ++i) { 
        int n; 
        scanf("%d", &n); 
        if(n < 0 || n > 20) { 
            printf("%d n'est pas dans [0, 20]\n", n); 
            --i; 
        } else { 
            ++compteur[n]; //un 'n' supplémentaire a été saisi 
        } 
    }
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       

      //déclaration des 21 compteurs
      int compteur[21];

      //initialisation des 21 compteurs à 0
      for(i = 0; i <= 20; ++i)
      compteur[i] = 0;

      Ou plus simplement : int compteur[21]={0};
      0
    2. Utilisateur anonyme
       
      Oui :-) Comme je ne pisse plus de C, je ne savais plus bien comment ça se faisait d'initialiser à la déclaration, alors pour ne pas mettre de bêtise la for() marche toujours ;-)
      0
  4. fadim Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    ok merci bizu ça marche
    0