C et "else if"

Etudiant_001 -  
mr05j Messages postés 343 Statut Membre -
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 81 Statut Membre 18
 
enlèves les points virgules en trop if(); else if(); ......
2
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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 365 Statut Membre 60
 
else if (imc<=16);
pas de ; à la fin de cette ligne
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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 343 Statut Membre 22
 
il y a pas de ";" dans une condition
if (condition)
{

};
merci bye
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Pas plus qu'il n'y a pas de point virgule à la fin d'une accolade...
0
mr05j Messages postés 343 Statut Membre 22
 
ou que oui
0
mr05j Messages postés 343 Statut Membre 22
 
bonne continuation bye
0