Fonction if : résultat bizarre

Yuku Messages postés 215 Statut Membre -  
 Yuku -
Bonjour,

Un résultat m'étonne dans mon programme :

#include <stdlib.h>
#include <stdio.h>

int main()
{
int a=4, b=3, c=2;
if ()
printf("Vrai!\n");

else
printf("Faux!\n");


return 0;
}

//Avec 4, 5 et 6 : En effet, le programme affiche "Vrai", car a<b<c.//
//Avec 4, 2 et 1 : //
//Avec -2, -1 et 0 : Dans ce cas, a>b>c, donc le programme affiche "Faux!"//


On me demande ensuite d'évaluer les résultats avec a=4, b=5 et c=6, puis 4,2 et 1 et -2, -1 et 0.

Quand je mets 4, 5 et 6 pas de problème, j'obtiens "Vrai!".
De même, quand je mets -2, -1 et 0, j'obtiens "Faux!".
Mais quand je mets 4, 2 et 1, j'obtiens "Vrai!"... alors que ça devrait être faux...

Quelqu'un pour m'expliquer?
A voir également:

5 réponses

cybertipunch Messages postés 678 Statut Membre 176
 
Re
Je vois plutot

if ((a<b) and ( b<c))
2
Yuku
 
Merci cyber... c'était en effet ça, il fallait mettre ((a<b)&&(b<c)) :)
0
cybertipunch Messages postés 678 Statut Membre 176
 
Bonjour !
Quelle est la condition dans IF ???
-1
Yuku Messages postés 215 Statut Membre 4
 
Petite erreur de ma part, notez que j'écris dans la ligne if :

"if (a < b < c)"

Le problème est toujours le même.
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 19025 Date d'inscription   Statut Contributeur Dernière intervention   5 640
 
hello
l'expression est évaluée de gauche à droite, avec 4,2,1
4<2 c'est faux, en C faux c'est 0, donc 0<1 c'est vrai
-1