我爱橙 发表于 2022-2-23 15:13:36

NO.167 if 计算题

本帖最后由 我爱橙 于 2022-2-26 14:18 编辑

#include <stdio.h>

int main()
{
      int x = 3,y = 2,z=1;
      
      if(x>y>z)x=y;
      
      else x=z;
      
      printf("结果是:%d\n", x);

      return 0;
}

IF为真,不应该就接着计算x=y=2吗?

人造人 发表于 2022-2-23 15:26:53

这是C语言,不是数学,也不是python
这个在C语言中是错误的
if(x>y>z)x=y;

我爱橙 发表于 2022-2-23 15:37:46

人造人 发表于 2022-2-23 15:26
这是C语言,不是数学,也不是python
这个在C语言中是错误的
if(x>y>z)x=y;

是不能连续判断关系吗?写成x>y,y>z,这样的话就为真吗?

人造人 发表于 2022-2-23 15:42:42

我爱橙 发表于 2022-2-23 15:37
是不能连续判断关系吗?写成x>y,y>z,这样的话就为真吗?

这些教程中都有讲的,看教程一步一步慢慢来
if(x > y && y > z) x = y;

我爱橙 发表于 2022-2-24 17:05:39

人造人 发表于 2022-2-23 15:26
这是C语言,不是数学,也不是python
这个在C语言中是错误的
if(x>y>z)x=y;

亲,如果是错误的话程序不应该不执行吗?
是c语言默认这种错误逻辑就为假了吗?

人造人 发表于 2022-2-24 17:44:02

我爱橙 发表于 2022-2-24 17:05
亲,如果是错误的话程序不应该不执行吗?
是c语言默认这种错误逻辑就为假了吗?

if(x > y > z)
先算 x > y,计算结果再和 z 比较

我爱橙 发表于 2022-2-24 17:50:44

人造人 发表于 2022-2-24 17:44
if(x > y > z)
先算 x > y,计算结果再和 z 比较

所以是if x>y为真然后判断结果为1,再和z比较为假,
就else了吧

人造人 发表于 2022-2-24 18:24:39

我爱橙 发表于 2022-2-24 17:50
所以是if x>y为真然后判断结果为1,再和z比较为假,
就else了吧

anzhexuan666 发表于 2022-3-23 11:00:46

if(x > y > z)
先算 x > y,计算结果再和 z 比较
页: [1]
查看完整版本: NO.167 if 计算题