jeanphilippe37
Messages postés73Date d'inscriptionmercredi 25 juillet 2007StatutMembreDernière intervention21 octobre 2010
-
1 août 2008 à 00:10
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 2009
-
1 août 2008 à 17:15
Bonjour,
C'est encore moi!!!!! Voila, j'ai réalisé un TD seul et j'y suis arrivé!!! Mais, mon codage est juste mais le sens n'y pas.
Lorsque j'exécute ce programme, dans "Donnes moi ton age", le programme devrait ne rien mettre car c'est à l'utilisateur de le faire et beh, ce con, il me met 18.
Comment corriger ce petit soucis ?
merci encore
@++
JPh
Mon code
#include <cstdlib>
#include
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
int age=18;
printf("Donnes moi ton age stp : %d",age);
scanf("%d",&age);
if(age>18)
{
printf("Tu es majeur!\n");
if (age<18)
{
printf("Tu es mineur mon gars!\n");
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
gamemonde
Messages postés336Date d'inscriptionsamedi 9 août 2003StatutMembreDernière intervention 9 juillet 20112 1 août 2008 à 00:41
printf("Donnes moi ton age stp : %d",age);
ca donne : Donnes moi ton age stp : 18
ta variable age contient 18 WOW ca fonctionne et oui !!
if(age>18)
{
printf("Tu es majeur!\n");
if (age<18)
{
printf("Tu es mineur mon gars!\n");
}
}
il peux pas être à la sois >18 et en meme temps < 18 on aurais du voir
if(age>18)
{
printf("Tu es majeur!\n");
}
if (age<18)
{
printf("Tu es mineur mon gars!\n");
}
encora la pas tres beau
un if else serais bon mais la autre problème et oui ton programme si tu mets 18 ans et bien tu ne sera ni majeur ni mineur !!!
tu utilises aucune fonction contenu dans tu peux enlever #include
cs_hichem16
Messages postés12Date d'inscriptiondimanche 20 juillet 2008StatutMembreDernière intervention10 avril 2010 1 août 2008 à 01:21
slt bah tu c'est pas tres beau ce que t'a fait la quand meme, mais ce n'est qu'un début, je vais te corriger..
voila ton code ( celui que t'a fait):
#include <cstdlib>
#include <= == ça ne sert absolument a rien !!!tu n'utilise aucune fonction dans iostream #include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
int age=18;
printf("Donnes moi ton age stp : %d",age); <=== tu affiche ta variable a la quelle tu compare ?!
scanf("%d",&age);
if(age>18)
{
printf("Tu es majeur!\n");
if (age<18) < === tu te repète , tu devrais mettre if.... else {
printf("Tu es mineur mon gars!\n");
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
bon alors voila ce que jte propose :
#include <stdio.h>
#define limite 18 //definition de la limite d'age
int main()
{
int age; //definition de la variabe que l'utilisateur entre
printf("donne moi ton age stp : ");
scanf("%d",&age); // lecture de l'age que l'utilisateur entre
if (age<limite) // ici on teste la valeur entré par l'utilisateur et celle qui est posée comme limite
{
printf("DEGAGE TU EST MINEUR !!\n");
}
else {
printf("BIENVENUE vous etes majeur\n");
}
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 1 août 2008 à 14:18
Salut
C'est pas encore très bon comme manière de coder.
Que ce passe t-il si l'utilisateur entre un caractère au lieu d'un entier?
Plantage assuré.
Il faut toujours que la variable "age" soit un char. On test donc si c'est un chiffre ou pas, puis on le convertit en int si c'est un entier et sinon on redemande à l'utilisateur d'entrer une nouvelle valeur si la valeur saisi est incorrecte.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 1 août 2008 à 17:15
"Que ce passe t-il si l'utilisateur entre un caractère au lieu d'un entier?
Plantage assuré."
Non, pas de plantage.
Si un caractère est entré, scanf l'ignorera et conservera la valeur de age comme elle était avant l'appel. Il faut donc simplement initialiser age à disons, -1 avant l'appel puis tester si c'est toujours cette valeur après. Si oui -> erreur.
Cependant, scanf acceptera des trucs dans le genre:
12abc34
Il ne conservera que les premiers caractères "12".
"Il faut toujours que la variable "age" soit un char."
J'imagine que tu parles d'un tableau. Alors oui, si on veut faire un test sur l'ensemble de la chaine pour éviter les "12abc34".