Quelle est l'erreur dans ce programme ?

abak -  
malaik5 Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je crois qu'il y a une erreur dans ce programme mais je ne sais pas laquelle, pouvez-vous m'aider ?

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

int main()
{
double taille = 0.000;
double poids = 0.000;
double resultat1 = 0.000;
double resultat2 = 0.000;

printf("Combien mesurez-vous ?");
scanf("%f, &taille");
printf("Et combien pesez-vous ?");
scanf("%f, &poids");

resultat1 = taille*taille;
resultat2 = poids/resultat1;

if (resultat2 <= 18)
{
printf("Votre IMC est de %f, vous êtes trop maigre !", resultat2);
}

else if (resultat2 > 18 && <= 25)
{
printf("Votre IMC est de %f, votre corpulence est tout à fait normale.", resultat2);
}

else if (resultat2 > 25 && <= 30)
{
printf("Votre IMC est de %f, vous êtes en surpoids !", resultat2);
}

else if (resultat2 > 30 && <= 40)
{
printf("Votre IMC est de %f, vous êtes en obésité modérée.", resultat2);
}

else
{
printf("Votre IMC est de %f, vous êtes en obésité morbide.", resultat2);
}

return = 0;

}

Merci d'avance .

4 réponses

fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Bonjour,
Plusieurs erreurs :
scanf("%f, &taille");
Attention au placement des guillemets : scanf("%lf", &taille);
Oui, c'est bien %lf (L minuscule) et non %f qu'il faut mettre puisque taille est de type double. Pour les printf, en revanche, il faut bien laisser %f.

else if (resultat2 > 18 && <= 25)
Comme KX : ça ne veut rien dire. Il faut mettre : if (resultat2 > 18 && resultat2 <=25). Ou encore mieux : if (resultat2 <=25).
Il n'y a pas besoin de mettre resultat2 > 18 puisque tu as mis un elseif. Tu as donc la garantie d'avoir resultat2 > 18.

return = 0;
return 0; ça sera beaucoup mieux.
Et je te conseille de mettre un putchar('\n'); juste avant le return 0; pour sauter une ligne et flusher la sortie.

Cdlt,
1
KX Messages postés 19031 Statut Modérateur 3 020
 
Le "return = 0" n'est pas bon, et les instructions "&& <=" ne veulent rien dire...
Mais ton compilateur doit te l'indiquer ça !
0
abak
 
Merci beaucoup pour vos réponses rapides, je vais en tenir compte !
0
malaik5 Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   33
 
Bonjour,
Commence par corriger les scanf comme indiqué par fiddy et ça va régler deja pas mal de tes problemes

bon courage
0