关系运算后赋值给变量的问题(c语言)

来源:百度知道 编辑:UC知道 时间:2024/05/22 00:01:58
关系运算后赋值给变量的问题
例如:当啊a=3,b=2,c=1时 表达式f=a>b>c的值是【】?结果是【0】。
这种题目怎样做?什么原理?

上题结果为0
下面讲一下原理
c改为0

#include<stdio.h>
void main()
{
int a=3,b=2,c=0;
printf("%d\n",a>b>c);
printf("%d\n",b>a>c);

}
运行过了
1
0
从左往右算
a>b结果为TRUE(bool 型,也就是1)
a>b>c即为1>0 结果当然是1
同理,b>a>c 结果当然是0

f=a>b>c
分解
a>b 成立 值为1
1>c 不成立 值为0
f=0
就这样
原理是运算符号的优先级
=比>低

>优先级大于= 而且>的运算是从左到右 a>b>c 即(a>b)>c 3>2成立 结果为1 1>1 不成立 结果为0 则F=0
论证完毕

这样给你讲
右边带>的是个整体
因为>的优先级比=高
而>又是从左到右算的
先算a>b就是3>2吗?
大于
所以
a>b的值就是1,成真的嘛
同样道理
把1带到a>b中判断
1>c吗
显然不大于
所以右边整个a>b>c的值就是0
给f
结果就是0了