Oui, oeuf corse. J'avais même pas remarqué. Corrigaid.Citation:
Envoyé par Médinoc
Version imprimable
Oui, oeuf corse. J'avais même pas remarqué. Corrigaid.Citation:
Envoyé par Médinoc
Maintenant oui mais au départ il y avait un élément de fin ('\0' à ne pas compter) donc la macro était spécifique à ce tableau. Mais comme du coup on connait le nombre d'élément, j'ai supprimé l'élément de fin et on revient à la macro de base.Citation:
Envoyé par Médinoc
Bonjour J'ai trouvé, merci beaucoup voilà mon code assez simple.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h> char tlettres[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; int nb[26]; int i; char c; void main () { for (i=0;i<26;i++) { nb[i]=0; //On met tous les nb a 0 } printf("Tapez une phrase:\n"); do { scanf("%c",&c); for (i=0;i<26;i++) { if (c==tlettres[i]) { nb[i]++; } } }while(c!='\n'); for(i=0;i<26;i++) { printf("%d fois %c\n",nb[i],tlettres[i]); } }
memset est ton ami.Code:
1
2
3
4 for (i=0;i<26;i++) { nb[i]=0; //On met tous les nb a 0 }
Puis pour ta boucle de i=0 à 26 utilise plutot la MACRO fournit plus haut.Code:memset(nb,0,sizeof(nb));
Je ferais plusCode:
1
2 nb_item=NB_ITEM(nb); for(i=0;i<nb_item);
queCode:char tlettres[] ={...};
Code:char tlettres[26]={...};
Bravo, tu as réussi.
Mon point de vue:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdio.h> int main(void) { unsigned char i; unsigned int nb[26]; char c = 0; for (i=0; i<26; nb[i++]=0); //initialise tableau à 0 printf("taper phrase:\n"); while(c!='\n') { scanf("%c", &c); if (c>96 && c<123) nb[c-96]++; } for (i=0; i<27; i++) if (nb[i]) printf("%d %c\n", nb[i], i+96); return 0; }
http://nicolas.noufel.free.fr/Adibou.bmpCitation:
Envoyé par Lunixinclar