Pb en programmation en c

Fermé
ArthurChionard - 23 nov. 2010 à 19:49
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 nov. 2010 à 21:36
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 !
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
23 nov. 2010 à 21:36
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 jeudi 2 juillet 2009 Statut Membre Dernière intervention 20 juin 2011 99
23 nov. 2010 à 19:54
Essaye en enlevant le tiret.

Etes-vous humain -> Etes vous humain
0
flashgame Messages postés 3 Date d'inscription mardi 23 novembre 2010 Statut Membre Dernière intervention 23 novembre 2010
23 nov. 2010 à 21:24
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
Modifié par fiddy le 23/11/2010 à 21:37
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