热心网友
回答时间:2024-04-26 23:28
首先你要搞明白a<b<c,它的意思不再是a小于b同时b小于c就成立。根据<的自左向右的结合性,
它和(a<b)<c的意义是一样,下面来分析一下(a<b)<c:
(a<b)这个式子只有两个结果,0或者1.当a小于b时,它的值为1,其他的情况都为0.
而c就接着和1或者0进行比较了。
然后开始计算过程的分析:
循环开始前:t未知,a=1,b=2,c=2。因为(a<b)的值为1,所以(a<b<c)的值为1,开始循环
第一次循环后:t=1,a=2,b=1,c=1。因为(a<b)的值为0,所以(a<b<c)的值为1,继续循环
第二次循环后:t=2,a=1,b=2,c=0。因为(a<b)的值为1,所以(a<b<c)的值为0,结束循环
所以a,b,c的值分别是1,2,0
如果关于(a<b<c)你的本意是a小于b同时b小于c就成立,你应该这么写((a<b) && (b<c))
希望能帮助你。。
收起
热心网友
回答时间:2024-04-26 23:24
楼上正解,丫的,刚才看错题目了,汗 ;
其实也就是认识清楚a<b<c这个限定条件
收起
热心网友
回答时间:2024-04-26 23:22
void main()
{
int t,a,b,c;a=1;b=2;c=2; //定义 参数,全是整型类型的
while(a<b<c) //判断 只有满足a<b<c才会循环 否则跳出循环
{
t=a;a=b;b=t;c--;//a值赋给t ,b值赋给a,t值赋给b,c值减1
}
cout<<a<<b<<c;//打印a b c
}
a<b<c 判断方法 先判断 a<b 再判断 (a<b) <c
收起
热心网友
回答时间:2024-04-26 23:22
初始时:a=1,b=2,c=2;
而a<b<c是先a和b相比,把比较结果TRUE或者FALSE也就是1和0再跟c比。
while(a<b<c)
第一次:a=1,b=2;满足a<b,结果为1,1比c的值2小,while值为1,进入循环,交换ab值,c减一,此时a=2,b=1,c=1;
第二次:a=2,b=1;不满足a<b,结果为0,0比c的值1小while值为1,进入循环,交换ab值,c减
一,此时a=1,b=2,c=0;
第三次:a=1,b=2;满足a<b,结果为1,1比c的值0大,while值为0,跳出循环,此时a=1,b=2,c=0;输出。
收起
热心网友
回答时间:2024-04-26 23:30
a<b true , a<b=1<c true, t=a=1, a=b=2, b=t=1, c=1
a<b false, a<b=0<c true, t=a=2. a=b=1. b=t=2, c=0
a<b true, a<b=1<c false
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。
收起