Probleme dans condition du programme

Résolu/Fermé
plopus Messages postés 5962 Date d'inscription jeudi 1 janvier 2009 Statut Contributeur sécurité Dernière intervention 11 mars 2012 - 11 févr. 2009 à 19:38
majdou345 Messages postés 62 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 10 juillet 2009 - 11 févr. 2009 à 22:57
Bonjour,

en fait je m'exerce sur la programmation de plusieurs conditions (sous console DOS) mais j'arrive pas sortir d'un probleme
suite a ceci, peut importe l'age marqué l'inscription à la fin et "Salut gamin"

quelqu'un peut me montrer mon erreur car la je bloque pour que le programme fonctionne comme je le souhaite



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

int main(int argc, char *argv[])
{
long age;

printf("Quel age as tu ?\n");
scanf("%ld", age);

if (age <= 2)
{
printf("Salut bebe !");
}
else if (age > 2 <= 6)
{
printf("Salut gamin !");
}
else if (age > 6 <= 12)
{
printf("Salut jeune !");
}
else if (age > 12 <= 16)
{
printf("Salut ado !");
}
else if (age > 16 <= 18)
{
printf("Salut adulte !");
}
else if (age >= 68)
{
printf("Salut papy !");
}

printf("\n\n");

system("PAUSE");
}

8 réponses

majdou345 Messages postés 62 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 10 juillet 2009 1
11 févr. 2009 à 19:46
la condtion de et-logique "AND" c'est pas comme ça sous DOS et en langage C je crois:
au lieu de : else if (age > 2 <= 6) il faut que tu rends la condition comme ça :

else if ((age > 2)&&(age<= 6))

et aussi pour les autres utiliser '&&' pour signifier le AND
0
plopus Messages postés 5962 Date d'inscription jeudi 1 janvier 2009 Statut Contributeur sécurité Dernière intervention 11 mars 2012 293
11 févr. 2009 à 19:49
re

ok jvé essayer merci :)

jte dit
0
plopus Messages postés 5962 Date d'inscription jeudi 1 janvier 2009 Statut Contributeur sécurité Dernière intervention 11 mars 2012 293
11 févr. 2009 à 20:04
re

non comme sa sa marche pas non +

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

int main(int argc, char *argv[])
{
long age;

printf("Quel age as tu ?\n");
scanf("%ld", age);

if (age <= 2)
{
printf("Salut bebe !");
}
else if ((age > 2)&&(age <= 6))
{
printf("Salut gamin !");
}
else if ((age > 6)&&(age <= 12))
{
printf("Salut jeune !");
}
else if ((age > 12)&&(age <= 16))
{
printf("Salut ado !");
}
else if ((age > 16)&&(age <= 18))
{
printf("Salut adulte !");
}
else if (age > 68)
{
printf("Salut papy !");
}
printf("\n\n");

system("PAUSE");
}

sa marque toujours Salut papy et si j'enleve les instructions age >68 sa ne marque aucun commentaire
0
majdou345 Messages postés 62 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 10 juillet 2009 1
11 févr. 2009 à 20:12
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
long age;

printf("Quel age as tu ?\n");
scanf("%ld", age);

if (age <= 2)
{
printf("Salut bebe !");
}
if ((age > 2)&&(age <= 6))
{
printf("Salut gamin !");
}
if ((age > 6)&&(age <= 12))
{
printf("Salut jeune !");
}
if ((age > 12)&&(age <= 16))
{
printf("Salut ado !");
}
if ((age > 16)&&(age <= 18))
{
printf("Salut adulte !");
}
if (age > 68)
{
printf("Salut papy !");
}
printf("\n\n");

system("PAUSE");
}



ah ok bon eliminer tous les "else" en mettant que "if" comme j'ai écris ci-dessus et croie moi cette fois çi ça marche : le problème est à cause de "else"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
plopus Messages postés 5962 Date d'inscription jeudi 1 janvier 2009 Statut Contributeur sécurité Dernière intervention 11 mars 2012 293
11 févr. 2009 à 20:19
re

non toujours pareil, c'est salut papy et si jenleve cette instruction je n'ai plus de commentaire
0
majdou345 Messages postés 62 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 10 juillet 2009 1
11 févr. 2009 à 20:28
ah non mon ami tu as une faute grave que j'ai vu pardon :
scanf("%ld", age); ----------> "scanf" c 'est pas comme ça
il faut écrire:

scanf("%ld", &age);


par ce que lorsqu'on fait la lecture d'une variable en C il faut donner l'adresse de la variable c'est comme ça: &age

maintenant ça va marcher à 1000 pour cent


ton probleme étais dès le début que ton ordinateur prend une valeur aléatoire de la mémore à n'importe quelle adresse pour la variable "age"
0
plopus Messages postés 5962 Date d'inscription jeudi 1 janvier 2009 Statut Contributeur sécurité Dernière intervention 11 mars 2012 293
11 févr. 2009 à 20:30
re

c'est pas sa non +

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

int main(int argc, char *argv[])
{
long age;

printf("Quel age as tu ?\n");
scanf("%ld", age);

if ("%ld" <= 2)
{
printf("Salut bebe !");
}
if (("%ld" > 2)&&("%ld" <= 6))
{
printf("Salut gamin !");
}
if (("%ld" > 6)&&("%ld" <= 12))
{
printf("Salut jeune !");
}
if (("%ld" > 12)&&("%ld" <= 16))
{
printf("Salut ado !");
}
if (("%ld" > 16)&&("%ld" <= 18))
{
printf("Salut adulte !");
}

printf("\n\n");

system("PAUSE");
}


je viens de voir ton message tu as raison j'ai oublié ce & qui est obligatoire oufff bien vu

j'essaye et jte dit
0
plopus Messages postés 5962 Date d'inscription jeudi 1 janvier 2009 Statut Contributeur sécurité Dernière intervention 11 mars 2012 293
11 févr. 2009 à 20:35
re

ok c'est bon, un oublie de me*de jme prends la tete depuis un moment pour rien ^^

en tout cas sache que TOUTES les methodes (a part la derniere au poste 7) marche quand on met le & donc merci majdou tu eu l'oeil mais je pensais pas que ce genre d'erreur passé avec le debugger
0
majdou345 Messages postés 62 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 10 juillet 2009 1
11 févr. 2009 à 22:57
de rien mon ami ! j'éspère que ton problème est résolu ! A++ !
0