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?
Configuration: Linux
Firefox 1.0.4

5 réponses

  1. cybertipunch Messages postés 641 Date d'inscription   Statut Membre Dernière intervention   176
     
    Re
    Je vois plutot

    if ((a<b) and ( b<c))
    2
  2. Yuku
     
    Merci cyber... c'était en effet ça, il fallait mettre ((a<b)&&(b<c)) :)
    0
  3. cybertipunch Messages postés 641 Date d'inscription   Statut Membre Dernière intervention   176
     
    Bonjour !
    Quelle est la condition dans IF ???
    -1
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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