#include <stdio.h>
int main()
{
double m,n,b;
printf("请输入你的身高和体重:");
scanf("%lf %lf",&m,&n) ;
b=n/(m*m);
if(b<18.5){
printf("偏瘦\n");
}
else{
if(18.5<b<23.9){
printf("正常\n");}
else{
printf("肥胖\n");}
}
printf("你的BMI是:%f",b) ;
return 0;
}
好像正常和肥胖不能区分
1、首先scanf输入格式不需要写空格,默认就是空格分割scanf("%lf %lf",&m,&n) ;直接写成scanf("%lf%lf",&m,&n) ;就可以了,%lf之间不需要加空格。
2、在C语言中,大于且小于,不能写成18.5<b<23.9,要写if(b>18.5 && b<23.9)。
&&表示与,意思左右两边逻辑表达式同时成立,返回1。
3、你if else,写成这样嵌套,可以,但是不建议这么写,阅读性差,运行效率也不高,不如直接写成3个if来的简单。