Programme en c

Résolu
fadim Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
bizu53 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention   -
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

le hollandais volant Messages postés 4998 Date d'inscription   Statut Membre Dernière intervention   1 057
 
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
fadim Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci
0
bizu53 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention   861
 
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
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 

//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
bizu53 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention   861
 
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
fadim Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci bizu ça marche
0