Bonjour !!!
Alors, j'ai une nouvelle question =)
J'ai un programme tiré d'un livre qui sert à compter le nbre d'espace blanc, ça nous donne ça :
Où donc digit et une liste, est chaque élément de sa liste compte le nombre de 0, 1...9 qu'il y a dans un texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28 #include <stdio.h> main() { int c,i,nwhite,nother;/*i:compteur; nwhite pour espaces blancs; nother pour compter autres*/ int ndigit[10]; /**vecteur declare - compte le nbre de 0, 1...9 (premier element compte le nbre de 0)*/ nwhite = nother = 0; for (i = 0;i<10;++i) ndigit[i] = 0; while ((c=getchar()) !=EOF) { if (c>='0' && c<='9') /*fais reference au code ASCII*/ ++ndigit[c-'0']; /*rajoute un a l'element du vecteur correspondant au chiffre*/ else if (c==' '|| c== '\n' || c=='\t') ++nwhite; else ++nother; } printf("digitos="); for(i=0;i<10;++i) printf("%d",ndigit[i]); printf(",espacios blancos = %d, otros = %d \n",nwhite,nother); }
Ma question est la suivante :
pour ce if là :
Je comprends le principe mais 'aimerais savoir s'il est possible de faire ça autrement ? En fait, moi j'aurais plutôt l'idée de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (c>='0' && c<='9') /*fais reference au code ASCII*/ ++ndigit[c-'0']; /*rajoute un a l'element du vecteur correspondant au chiffre*/
Ainsi, si par exemple c = 3, alors le 4éme élément de la liste ndigit sera incrémenté. Ce qu'on cherche à faire !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (c>='0' && c<='9') /*fais reference au code ASCII*/ ++ndigit[c]
Sommes nous obligé de passé par le code ASCI ?
En fait je mélange un peu avec Python je sais... mais je suis perturbée
Partager