Nomres compris ente xx et xx

djfr33 Messages postés 2 Date d'inscription mardi 5 décembre 2006 Statut Membre Dernière intervention 9 octobre 2009 - 9 oct. 2009 à 15:55
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 9 oct. 2009 à 18:37
salut a tous , ici fred, etudiant en informatique de gestion 1ere anné bac .
je poste une question vis a vis d'un probleme que jai rencontré en fesant un code pour un petit programme calulant le bmi donnat une classification selon le resultat .
je m'explique :
j'ntre les données de poid , de taille et le bmi mes donné selon la formule mathematique que jai assigné a cet effet . mais le problemes est dans les IF , en effet des que jatteind une valeur de bmi , les classification inferieures ne s'impriment pas , mais les uperieures s'affichent , ce qui est ennuiant, je sais pertinameten que cela vient du fait que je stipule que des lors ou la valeur du bmi est inferieur , il va l'imprimer . mais je ne sais pas comment traduire le fait quil devrait uniquement saisir des valeurs entre xx et xx ( ce qui resolverais le probleme ).
je vous joint le code source qui sera beaucoup plus parlant
#include 


int main()
{
float taille,poid,bmi,superficie;
printf ("indiquez votre taille avec la syntaxe suivante "X,XX" en metres. \n");
scanf ("%f",&taille);
printf ("indiquez votre poid avec la syntaxe suivante "XX,XX" en kilogrammes.\n");
scanf ("%f",&poid);
superficie=taille*taille;
bmi=poid/(taille*taille);
printf ("votre BMI est de: " %3.2f ", votre surperficie est de: " %1.2f " \n",bmi,superficie);

if (bmi<16.5)

printf ("denutrition\n");

if ((bmi==16.5)||(bmi<18.5))

printf ("maigreur\n");

if ((bmi==18.5)||(bmi<25.0))

printf ("corpulence normale\n");

if ((bmi==25)||(bmi<30))

printf("surpoid\n");

if ((bmi==30)||(bmi<35))

printf ("obesité moderé\n");

if ((bmi==35)||(bmi<40))

printf ("obesité severe\n");

if (bmi>=40.0)

printf ("obesité morbide ou massive\n");


}

2 réponses

djfr33 Messages postés 2 Date d'inscription mardi 5 décembre 2006 Statut Membre Dernière intervention 9 octobre 2009
9 oct. 2009 à 15:57
pardonnez moi mon orthographe ,j'ai oublier de passer à la correction , jai appuyer trop vite sur envoyer.
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
9 oct. 2009 à 18:37
Remplace tous tes == par des >= et ça ira mieux.

Mais tu peux améliorer encore en utilisant des else :
if(bmi<16.0)
   printf("...");
else if(bmi<20.0)
   printf("...");
else if(bmi<25.0)
   printf("...");
...
else prinf("...");

0
Rejoignez-nous