Problème lanagage C
Fermé
magix-mush
Messages postés
50
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
6 janvier 2010
-
18 déc. 2009 à 13:18
magix-mush Messages postés 50 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 6 janvier 2010 - 18 déc. 2009 à 18:35
magix-mush Messages postés 50 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 6 janvier 2010 - 18 déc. 2009 à 18:35
2 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
18 déc. 2009 à 14:02
18 déc. 2009 à 14:02
Quelques erreurs de jeunesse:
int majeur = 0;
majeur = age >= 18;
L'initialisation de majeur est inutile si on la modifie avant de l'avoir utilisé. Il vaudrait mieux mettre:
int majeur = age >= 18;
Que signifie cette expression ? On peut l'écrire (sachant que '>=' est plus prioritaire que '='):
majeur = (age >= 18);
(age >= 18) est une expression logique qui vaut 'faux' puisque age = 0.
if(majeur)
Le test est toujours faux puisque 'majeur' est faux, donc il est normal de toujours exécuter la partie 'else'.
Qu'aurait-il fallu faire ?
Donner à 'majeur' la valeur '18' et surtout faire le test sur l'âge, par exemple:
if (age >= majeur)
On se rend alors compte que l'on peut faire le test plus directement:
if (age >= 18)
Bonne réflexion.
int majeur = 0;
majeur = age >= 18;
L'initialisation de majeur est inutile si on la modifie avant de l'avoir utilisé. Il vaudrait mieux mettre:
int majeur = age >= 18;
Que signifie cette expression ? On peut l'écrire (sachant que '>=' est plus prioritaire que '='):
majeur = (age >= 18);
(age >= 18) est une expression logique qui vaut 'faux' puisque age = 0.
if(majeur)
Le test est toujours faux puisque 'majeur' est faux, donc il est normal de toujours exécuter la partie 'else'.
Qu'aurait-il fallu faire ?
Donner à 'majeur' la valeur '18' et surtout faire le test sur l'âge, par exemple:
if (age >= majeur)
On se rend alors compte que l'on peut faire le test plus directement:
if (age >= 18)
Bonne réflexion.
magix-mush
Messages postés
50
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
6 janvier 2010
1
18 déc. 2009 à 18:35
18 déc. 2009 à 18:35
Ok, merci pour ta réponse,d'après ce qui était expliqué sur le site, j'avais compris qu'on pouvais mettre "if (majeur)", et que majeur correspondait à la valeur "vrai", donc ca m'aurait répondu "vous etes majeur!" si j'avais mis un nombre supérieur à 18!