C et "else if"

Fermé
Etudiant_001 - Modifié par baladur13 le 14/10/2010 à 23:06
mr05j Messages postés 295 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 11 mars 2011 - 15 oct. 2010 à 00:55
Bonjour,

Voici un code source :

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

int main()
{
int poids;
int taille;
int imc;
printf("\t\tCALCUL DE L'IMC by Hadrien\n\n\n\n");
printf("Quel est votre poids (en Kg) ? :\n");
scanf("%d",&poids);
printf("Quelle est votre taille (en cm) ? :\n");
scanf("%d",&taille);
printf("\n\n");
imc=poids/taille^2;
printf("Votre IMC est de :%d\n",imc);
if (imc<=0);
{
printf("Ton IMC est sous/ou egal a 0 ! Tu devrais etre mort(e) !\n");
}
else if (imc<=16);
{
printf("Ton IMC se trouve entre 1 et 16 ! Tu es en denutrition ! MANGE MIEUX !\n");
}
else if (imc<=19);
{
printf("Ton IMC se trouve entre 17 et 19 ! Tu es maigre !\n");
}
else if (imc<=25);
{
printf("Ton IMC se trouve entre 20 et 25 ! Tu es normal(e) !\n");
}
else if (imc<=30);
{

printf("Ton IMC se trouve entre 26 et 30 ! Tu es en surpoids !\n");
}
else if (imc<=35);
{
printf("Ton IMC se trouve entre 31 et 35 ! Tu es moderement obese !\n");
}
else if (imc<=40);
{
printf("Ton IMC se trouve entre 36 et 40 ! Tu es severement obese ! Fais gaffe...\n");
}
else (imc>=41);
{
printf("Ton IMC est spuperieur a 40 ! Tu es en obesite morbide ! MAIGRIS !\n");
}

getch();

return 0;

}

A la ligne en gras et les autres else if, j'ai cette erreur :
error: 'else' without a previous 'if'

Pourriez vous m'aider ? Merci c'est urgent !


5 réponses

ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
14 oct. 2010 à 23:43
enlèves les points virgules en trop if(); else if(); ......
2
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
14 oct. 2010 à 23:43
Bonjour,

imc=poids/taille^2;
Attention taille^2 ne veut pas dire taille au carré en C. Il s'agit du Xor...
Fais plutôt taille*taille;

else if (imc<=16);
Pas de point virgule (;) après ton else if. Tu as répété l'erreur plusieurs fois.

else (imc>=41);
Pourquoi tu mets else sans if alors que tu mets une condition ?
De plus pas besoin de mettre de condition, si tu arrives dans le if, t'as la certitude que imc soit supérieur strictement à 40.
Donc simplement : else (pas de point virgule non plus)

De plus pourquoi avoir inclue math.h alors que tu ne te sers d'aucunes fonctions de ce header ?
0
Maxmax74 Messages postés 325 Date d'inscription mardi 22 avril 2008 Statut Membre Dernière intervention 9 février 2017 60
14 oct. 2010 à 23:45
else if (imc<=16);
pas de ; à la fin de cette ligne
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
14 oct. 2010 à 23:47
Pas de point virgule dans les if, else et else if.
else if (imc<=16); doit devenir
else if (imc<=16)

imc=poids/taille^2;
Attention ^2 ne veut pas dire carré en C mais xor. Mets plutôt taille*taille;

else (imc>=41);
Pourquoi mettre une condition sans if ? En plus pas besoin de condition, si tu arrives dans le else c'est que imc est supérieur strictement à 40.
Donc faut simplement mettre else (sans point virgule).

Et enfin pourquoi utiliser math.h alors que tu ne t'en sers pas ?

Cdlt,
0

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

Posez votre question
mr05j Messages postés 295 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 11 mars 2011 22
15 oct. 2010 à 00:47
il y a pas de ";" dans une condition
if (condition)
{

};
merci bye
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
15 oct. 2010 à 00:51
Pas plus qu'il n'y a pas de point virgule à la fin d'une accolade...
0
mr05j Messages postés 295 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 11 mars 2011 22
15 oct. 2010 à 00:53
ou que oui
0
mr05j Messages postés 295 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 11 mars 2011 22
15 oct. 2010 à 00:55
bonne continuation bye
0