Je pratique la programmation c maintenant et j'ai fait une calculatrice d'IMC. Cela fonctionne très bien, mais lorsque l'utilisateur saisit une chaîne ou un caractère sur le premier scanf
qui envoie des données pour faire flotter la variable «poids». Il a passé tout scanf
après cela et m'a montré une erreur que Your BMI is 1.#J
. Comment résoudre cette erreur? Voici mon code.Obtenir l'erreur quand l'utilisateur a entré une chaîne dans un scanf qui maintient la variable float
#include <stdio.h>
int main()
{
float weight;
float height;
float result;
float c_height;
printf("Enter your weight as kilogram...\n\n> ");
scanf("%f",&weight);
//If user input char or string , it passed all thing and showed error.
printf("\nEnter your height as centimetres...\n\n> ");
scanf("%f",&height);
c_height=(height/100)*(height/100);
result=weight/c_height;
if(result<18.50)
{
printf("\nYour BMI is %.2f\n\n",result);
printf("You are underweight! Try to eat more frequently\n\n");
printf("Thank you for using my program!\n\n");
}else if(result>=18.50 && result<22.90)
{
printf("\nYour BMI is %.2f\n\n",result);
printf("You are healthy! Keep eating healthy\n\n");
printf("Thank you for using my program!\n\n");
}else if(result>=22.90 && result<24.90)
{
printf("\nYour BMI is %.2f\n\n",result);
printf("You are a little overweight! Avoid eating some fat and an oil\n\n");
printf("Thank you for using my program!\n\n");
}else if(result>=24.90 && result<29.90)
{
printf("\nYour BMI is %.2f\n\n",result);
printf("You are overweight! Avoid eating fat and do exercise often\n\n");
printf("Thank you for using my program!\n\n");
}else if(result>=29.90)
{
printf("\nYour BMI is %.2f\n\n",result);
printf("You are obese! Do exercise everyday and eat carefully!\n\n");
printf("Thank you for using my program!\n\n");
}else
{
printf("Error occured!!");
}
return 0;
}
pourquoi entrer ombles ou chaîne quand quelqu'un demande poids et que dans float [format specifier] (https://www.le.ac.uk/users/rjm1/cotter/page_30.htm) – wrangler