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

  1. ydurce Messages postés 81 Statut Membre 18
     
    enlèves les points virgules en trop if(); else if(); ......
    2
  2. fiddy Messages postés 441 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
  3. Maxmax74 Messages postés 365 Statut Membre 60
     
    else if (imc<=16);
    pas de ; à la fin de cette ligne
    0
  4. fiddy Messages postés 441 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mr05j Messages postés 343 Statut Membre 22
     
    il y a pas de ";" dans une condition
    if (condition)
    {

    };
    merci bye
    0
    1. fiddy Messages postés 441 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
    2. mr05j Messages postés 343 Statut Membre 22
       
      ou que oui
      0
    3. mr05j Messages postés 343 Statut Membre 22
       
      bonne continuation bye
      0