Pb en programmation en c

ArthurChionard -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,



Je débute en C et j'ai créé un programme, le voici :

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

int main(int argc, char *argv[])
{
int age = 0;
printf("Entrez votre age :\n\n");
scanf("%d", &age);

if (age >= 18)
{
printf("\nVous etes majeur !!!\n\n");
}

else if (age < 1)
{
printf("\nAh gagagagaga !!!\n\n");
}

else if (age > 125)
{
printf("\nEtes-vous humain ?\n\n");
}

else
{
printf("\nVous etes mineur !!! \n \n");
}

system("PAUSE");
return 0;
}

le problème, c'est que quand je le test, et que j'écris un age > à 125 ans, ça me met n'importe quoi.

Et pourtant, il n'y a rien dans la zone de "correction".

Quelqu'un a-t-il une réponse pour moi ?

Merci d'avance, au revoir !

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Attention l'ordre des if / else if est très important.
Tu mets else if (age>125) après le if (age>=18), ce cas ne sera donc jamais exécuté.
Si tu mets un age supérieur à 125, ton programme rentrera dans le premier if.

Revois l'ordre de tes conditions (le plus spécifique en premier : < 1; >125; >=18).

Cdlt,
1
Nazuras Messages postés 62 Date d'inscription   Statut Membre Dernière intervention   99
 
Essaye en enlevant le tiret.

Etes-vous humain -> Etes vous humain
0
flashgame Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Tu peux aussi faire ça avec un switch au lieu de mettre tous ces if else
tu as un exemple simple ici https://www.commentcamarche.net/contents/111-langage-c-les-structures-conditionnelles
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
A moins d'écrire tous les nombres jusqu'à 125 (ou même plus car son programme tient compte de tous les nombres), c'est pas possible avec un switch...
0