Probleme dans condition du programme

Résolu
plopus Messages postés 5962 Date d'inscription   Statut Contributeur sécurité Dernière intervention   -  
majdou345 Messages postés 62 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   1
 
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   Statut Contributeur sécurité Dernière intervention   293
 
re

ok jvé essayer merci :)

jte dit
0
plopus Messages postés 5962 Date d'inscription   Statut Contributeur sécurité Dernière intervention   293
 
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   Statut Membre Dernière intervention   1
 
#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   Statut Contributeur sécurité Dernière intervention   293
 
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   Statut Membre Dernière intervention   1
 
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   Statut Contributeur sécurité Dernière intervention   293
 
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   Statut Contributeur sécurité Dernière intervention   293
 
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   Statut Membre Dernière intervention   1
 
de rien mon ami ! j'éspère que ton problème est résolu ! A++ !
0