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
Bonjour,
Je débute dans la programmation et j'essaye d'apprendre le langage C sur un site étape par étape. Mais là, je bloque sur les conditions et les booléens.
En fait, je voudrais que l'utilisateur entre son age et que suivant sa réponse, ca lui indique si il est majeur ou mineur (Je sais que c'est débile, mais il faut bien commencer!)!

Voilà, ce que j'ai essayé de faire:

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

int main(int argc, char *argv[])
{
int age = 0;
int majeur = 0;
majeur = age >= 18;
printf("entrez votre age?");
scanf("%d", &age);
if(majeur)
{
printf ("vous etes majeur !");
}
else
{
printf ("vous etes mineur !");
}
return 0;
}


Le problème est que je peux mettre n'importe quel àge, mais ca m'indique toujours "vous êtes mineur!", Pouvez-vous m'aider à le corriger?
Merci!!!

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
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.
0
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
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!
0