C 关系运算符的链接给出了错误的输出

C 关系运算符的链接给出了错误的输出,c,operators,comparison-operators,C,Operators,Comparison Operators,谁能给我解释一下吗?我做错什么了吗? 当我运行该程序时,它不会显示正确的答案 例:当我输入体重=50公斤,身高=130厘米时,答案应该是 你的体重指数是29.58。你体重超标2。你将有机会导致高血压和糖尿病,需要控制饮食。和健身 但答案是 你的体重指数是29.58。你是正常的 在您的代码中,您尝试了什么 else if(18.5<=bmi<23) 是完全有效的C语法。然而,它本质上与 ((18.5<=bmi) < 23 ) (18.5 <= bmi) <

谁能给我解释一下吗?我做错什么了吗? 当我运行该程序时,它不会显示正确的答案

例:当我输入体重=50公斤,身高=130厘米时,答案应该是

你的体重指数是29.58。你体重超标2。你将有机会导致高血压和糖尿病,需要控制饮食。和健身

但答案是

你的体重指数是29.58。你是正常的


在您的代码中,您尝试了什么

 else if(18.5<=bmi<23)
是完全有效的C语法。然而,它本质上与

((18.5<=bmi) < 23 )
(18.5 <= bmi) < 23
由于天气原因

因此,首先是18.5这个:

因此,它实际上是变量的两个比较,必须使用布尔and&&运算符来编写,以使其显式化。

是的,C语言确实向您展示了您所尝试的正确答案

C中没有类似的语法可供比较,但它是一种有效的语法:

else if(18.5<=bmi<23)
应该是这样的:

else if((18.5<=bmi)&&(bmi < 23))

我不太了解C,但它支持x18.5<=bmi<23
(18.5 <= bmi) < 23
(18.5 <= bmi) && (bmi < 23)
else if(18.5<=bmi<23)
else if((18.5<=bmi)&&(bmi < 23))