Un ptit pb en C, Debutant 2 .

Signaler
Messages postés
3
Date d'inscription
dimanche 19 janvier 2003
Statut
Membre
Dernière intervention
29 janvier 2003
-
Messages postés
2
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008
-
Voila encore un probleme, apres avoir appris a me servir du "if" j'ai fait ce petit programme :

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

int main(void)

{

char szname[10]; //Definie le nombre de caracteres que l'utilisateur tapperas
int sage = 0;

printf("Bienvenue Dans Mon Programme !\n");

sleep(2000); // Permet De faire un intervale de 4 sec Entre les 2 phrases

printf("Comment t'appelle tu ?\n");

scanf("%s", &szname); // l'utilisateur donne son nom

sleep(2000);

printf("Bien le Bonjour %s\n", &szname);

printf("Quel age as tu ?\n");

scanf("%d", &sage);

if(sage < 10 )
{
printf("Allez, le jeunot ! AU LIT !\n");
}
if(sage <15 )
{
printf("T'es un préado, Vas t'en!\n");
}
if(sage < 18 )
{
printf("En pleine adolescence !\n");
}
if(sage < 25)
{
printf("profite en bien, encore !\n");
}
if(sage > 26)
{
printf("Ta encore la vie devant toi, mais fais pas le fou !\n");
}

else
{
printf("En tout cas, tu as encore de la vie devant toi !\n");
}

system("pause");
return 0;
}

Bon c'est vraiment un programme tres basique mais je debute !
Le programme marche mais le Pb est que si, par ex, j'entre 16 en age, il me sort tout les printf des "if !" sauf celle ci :

if(sage < 10 )
{
printf("Allez, le jeunot ! AU LIT !\n");
}

Donc je vois d'ou vient le probleme mais ne sai spas cmment le regler ! si je tape 16 je veut que seul :

if(sage < 18 )
{
printf("En pleine adolescence !\n");
}

ne sorte! Mais cmment faire ? HELP SVP :)

2 réponses

Messages postés
15
Date d'inscription
mercredi 15 janvier 2003
Statut
Membre
Dernière intervention
19 février 2003

C'est normal tu es d'accord que 16 <10 est False dc tu ne rentre pas ds le if, par contre tt les autres flux ,les autres conditions st vrais (16<18<25..) utilise plutot un case, si l'une des conditions est remplie alors tu pourra sortir...
Messages postés
2
Date d'inscription
mercredi 2 juillet 2008
Statut
Membre
Dernière intervention
13 septembre 2008

Tu peux aussi essayer de faire une double condition
c'est à dire au lieu de :
if (sage < 15)
tu fais :
if (sage < 15 && sage > 10)
ca veut dire que l'instruction ne se lancera que si la variable sage est comprise entre 10 et 15.
Fais de même pour les autres conditions :
sage > 15 && sage < 18
sage > 18 && sage < 25
etc etc ...
comme ca si tu tape le nombre 16, ca te donnera la condition ou c'est compris entre 15 et 18
les autres par contre seront fausses.

PS: essaye de remplacer les if apres le premier par un else if
comme ca si jamais la condition est juste, le programme va passer à la suite sans qu'il
test les autres conditions.

__________________________________________________________________________
WUXthe Jack*RED's  Flux                                       char Pain = 0 ;
                                                                                         double Pride = 0;
                                                                                         for(Pain, Pain >= 0, Pride++);
<!--