bonjour
pour quoi ce code affiche 5 x 0 = 0 tantque la veriabe n est incrimenter de 1 avant l'instruction printf ?
Code:
1
2
3
4
5
6
7 int main() { int n; for(n = 0; n <= 10; n++) printf("5 x %2d %2d\n", n, n * 5); return 0; }
merci d'avance
Version imprimable
bonjour
pour quoi ce code affiche 5 x 0 = 0 tantque la veriabe n est incrimenter de 1 avant l'instruction printf ?
Code:
1
2
3
4
5
6
7 int main() { int n; for(n = 0; n <= 10; n++) printf("5 x %2d %2d\n", n, n * 5); return 0; }
merci d'avance
Non, n commence bien à 0. :aie:
Ta boucle va de 0 à 10 inclus.
n n'est pas incrémentée avant, mais APRES le printf.Citation:
pour quoi ce code affiche 5 x 0 = 0 tantque la veriabe n est incrimenter de 1 avant l'instruction printf ?
Le fonctionnement de l'instruction for(a;b;c) inst; est le suivant :
Code:
1
2
3
4
5
6
7
8
9 for(a;b;c) inst; 1 - évaluation de a 2 - évaluation de b <--------- 3 - si b est vrai | 3-1 évaluation de inst | 3-2 évaluation de c | 3-3 retour en (2)-------- ....
merci pour la bonn explication maintenant j'ai bien compris cette fonction
Citation:
1 - évaluation de a = (initialisation de la variable )
2 - évaluation de b = (test variable si n <= 10 )
3-1 évaluation de inst = ( inst ----> printf() )
3-2 évaluation de c = ( inst ----> n++ )
3-3 retour en (2) = ( return a test de la variable n si elle est encore n <=10)