#include "stdio.h"
void main()
{
int a=1,b=2,c=2,t;
while(a<b<c)
{
t=a;a=b;b=t;
c--;
}
printf("%d,%d,%d",a,b,c);
}
以下c程序while里的表达式是0,为什么还要执行while子句?
答案:4 悬赏:40 手机版
解决时间 2021-04-19 15:58
- 提问者网友:流星是天使的眼泪
- 2021-04-19 11:06
最佳答案
- 五星知识达人网友:怀裏藏嬌
- 2021-04-19 12:43
a<b<c这个表达式不是0,而是1
解释:
由于两个<优先级相同,因此从左向右运算,因为a=1,b=2,因此a<b的结果为真,结果计为1,1<c当然为真,所以a<b<c为1而不是0
全部回答
- 1楼网友:轻熟杀无赦
- 2021-04-19 15:44
按照你的意思应该将:a<b<c 改为a<b && b<c
- 2楼网友:渊鱼
- 2021-04-19 15:08
while中表达式有误,C语言中没有a<b<c这种表达方式,这样会造成错误
应该写成a<b && b<c
- 3楼网友:詩光轨車
- 2021-04-19 13:53
while(a<b<c)中
a<b<c 的值是1. 而不是0. 因为关系运输符< 是自左至右结合.
所以先比较a<b 再将a<b的结果与c比较.
程序中 a<b 为真.也就是1. 然后比较 1<c 也为真. 所以while()表达式就是1.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯