这个C程序的输出我无法理解

Mlo*_*der -2 c

我正在修改C并正在制作一些测试程序.在一个程序中,我正在检查一个正在翻译这种情况的条件.

#include <stdio.h>
int main()
{
if(0 <= 3000.000000 <= 2000.00){  //this is the condition
printf("3000 is less than 2000, whoa.. \n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出始终是此打印字符串.我不明白为什么.

PS

我正在测试中间值,即3000.000000,但它可以是一些变量.

jua*_*nza 6

条件解析如下:

if((0 <= 3000.000000) <= 2000.00){ 
Run Code Online (Sandbox Code Playgroud)

第一部分(0 <= 3000.000000)是真实的,并1在与之比较时进行评估2000.00.而且1 <= 2000.00是真实的.

如果你试图测试一个值是否a介于两个值之间b,c或者是否等于两个值,那么你需要一个表达式.

(a >= b) && (a <= c)
Run Code Online (Sandbox Code Playgroud)

  • XD太快了.我无法在你面前发布我的答案,在你纠正错误之前我无法评论你的错字. (3认同)