
Visiteur
|
| Ecrit le: 21 Dec 2007, 19:51 Message non corrigé | |
|
Voila mon code et j'ai un probleme POURQUOI l'ordinateur n'effectue pas les actions dans la case 2 du switch
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
long agemax=18;
long ageactuel;
printf("Entrez votre age: ");
scanf("%d", &ageactuel);
switch(ageactuel || agemax)
{
case 1:
if(ageactuel<agemax)
printf("Vous etes trop jeune\n");
break;
case 2:
if(ageactuel>=agemax)
printf("Vous pouvez conduire la voiture\n");
long vitessemax=50;
long vitesseactuel;
printf("Entrez votre vitesse actuelle: ");
scanf("%d", &vitesseactuel);
if(vitesseactuel<vitessemax)
printf("Vous roulez a la bonne vitesse\n\n.");
else if(vitessemax<vitesseactuel)
printf("Vous devez ralentir\n. Vous devez ralentir de %d km/h\n_", vitesseactuel-vitessemax);
break;
}
system("PAUSE");
return 0;
}
|
|
David

Grade : Expert
Inscrit le: 11 Mai 2005, 20:30
|
| Ecrit le: 24 Dec 2007, 10:26 Message non corrigé | |
|
Lorsque (ageactuel || agemax) est évalué, le résultat vaux 0 ou 1.
A aucun moment il ne peut valoir 2.
Ici, si au moin l'une des deux variable vaux une valeur différente de 0, on passe dans le case 1. Sinon, le case 0.
________ Apprenez à créer votre propre FPS en C++ avec OpenGL. C'est pas dur ! :-)
|
|