Problème lanagage C
magix-mush
Messages postés
50
Date d'inscription
Statut
Membre
Dernière intervention
-
magix-mush Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
magix-mush Messages postés 50 Date d'inscription Statut Membre Dernière intervention -
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!!!
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
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.