Je me lance en autodidacte assez débutant sur le C.
J'en suis à me familiariser avec les valeurs retournées par une expression quelconque, et sur un exercice je ne comprend pas pourquoi lerésultat est ainsi, pourtant j'ai essayé plusieurs trucs pour vérifier quelques idées.
Voici le code :
Dans le premier cas il me donne N = 6 P = 2 Q = 1 ; dans le second 6 3 et 1 et dans le dernier 7 4 et 1.
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 int N=10, P=5, Q=10; N = 5; P = 2; printf("Avec N = %d et P = %d on a :\n", N, P); /* premier cas*/ Q = N++ > P || P++ != 3; printf ("\t'Q = N++ > P || P++ != 3;' donne : N=%d P=%d Q=%d\n", N, P, Q); /*deuxième*/ Q = P++ != 3 || N++ > P; printf ("\t'Q = P++ != 3 || N++ > P;' donne : N=%d P=%d Q=%d\n", N, P, Q); /*troisième*/ Q = 0 || P++ != 3 || N++ > P; printf ("\t'Q = 0 || P++ != 3 || N++ > P;' donne : N=%d P=%d Q=%d\n", N, P, Q);
En fait j'ai testé en inversant l'ordre des deux tests dans l'affectation de Q entre le premier et le second cas. Dans le troisième comme je ne comprennais toujours pas, j'ai essayé de rajouter un test avant pour voir ce que ferai C, mais je n'arrive pas à comprendre...
Merci bien d'avance![]()
Partager