Bonjour , voici un code sur lequel j'aimerais quelques précisions ( je l'ai déjà montré mais là il marche :
1ere question :
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
29
30
31
32
33 int main(void) { int a, i, j;; int nlettre[9]; int nl = 0; for ( i = 0; i < 9; i++) nlettre[i] = 0; while ( ( a = getchar() ) != EOF && nl < 10) { if ( (a == ' ' || a == '\n' || a == '\t' ) && nl > 0 && nl < 10 ) { nlettre[nl-1]++; nl=0; } else { nl++; } for ( j = 0; j < 9; j++) { printf("%d :", j+1); for ( i=0; i<nlettre[j]; i++) { printf("_"); } printf("\n"); } return 0; }
for ( i = 0; i < 9; i++)
nlettre[i] = 0;
cette partie veut dire que en fait on met une variable i dans le tableau qui s'incrémentera seulement jusqu'à 9 ?
2eme question :
nlettre[nl-1]++; , ici on incrémente la valeur de nl - 1 , car en fait , un mot de 1 lettre se trouve à l'offset 0 du tableau ? mais quel est l'offset d'une case de tableau svp? merci
3eme question :
for ( j = 0; j < 9; j++)
{
printf("%d :", j+1);
for ( i=0; i<nlettre[j]; i++)
cette variable j , est celle qui parcourt le tableau si je ne me trompe pas ? et on écrit j + 1 , car je n'affiche pas les mots de 0 lettres ?
la ligne for ( i=0; i<nlettre[j]; i++) j'ai un peu de mal à la traduire , elle veut dire pour i qui vaut zéo et tant que i est infénieur à... à quoi?
dernière question : les 10 dans mon code , est ce que j'aurais pu les remplacer par une constante symboliques , genre je déclare au début :
#define ARRAY_SIZE 10 ?
merci de votre aide .
Partager