Le résultat d'un code en c
Résolu
Bonjour,
svp, lorsque j'exécute le code suivant
je trouve comme solution y=13, x=0 , ms je n'arrive pas a comprendre.
pouvez vous m'expliquer le code
merci d'avance
svp, lorsque j'exécute le code suivant
#include <stdio.h>
int main(){
int x = 4, y = 3 * x--;
if( x = !5 || y++ > 12)
printf("x=%d, y=%d\n", x, y);
else
printf("y= %d, x=%d\n", y, x);
return 0;
}
je trouve comme solution y=13, x=0 , ms je n'arrive pas a comprendre.
pouvez vous m'expliquer le code
merci d'avance
Configuration: Windows / Chrome 91.0.4472.114
2 réponses
-
Contributeurbonjour,
quel autre résultat attends-tu?-
-
Contributeur@LACHHABFADOUA
y++ > 12
est faux, y est incrémenté après la comparaison.
-
-
Bonjour,
Au départx = 4 et y = 12
, ensuite x passe à 3 (x--)
Dans la condition x vaut 0 car fairex = !5
renverra un booléen (0 ou 1) ici 0, ce sera toujours 0 si x vaut autre chose que 0, essaie avecx = !0
au lieu dex = !5
et y vaut 12 lors de la comparaison et passera ensuite à 13, c'est une post-crémentation essaie avec++y
au lieu dey++
.-
-
Contributeur
-
@yg_be
x = !5
j'ai pas compris l'utilité de cette statement.par exemplex != 5
c'est une comparaison maisx = !5
c'est quoi? -
Contributeur@LACHHABFADOUAc'est une assignation, comme
x = -123;
-
@yg_beMerci beaucoup.
-