请问一下“void main() {int t,a,b,c;a=1;b=2;c=2; while(a<b<c) {t=a;a=b;b=t;c--;} cout<<a<<b<<c;}

希望能够得到你的详细解答,具体的调用计算过程,为什么最后的输出结果会是120.如果能够得到你的帮助,感激不尽,谢谢... 希望能够得到你的详细解答,具体的调用计算过程,为什么最后的输出结果会是120.如果能够得到你的帮助,感激不尽,
谢谢
展开
 我来答
cws_relent
2011-03-04 · TA获得超过184个赞
知道答主
回答量:120
采纳率:0%
帮助的人:101万
展开全部
首先你要搞明白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))

希望能帮助你。。
深远又亲切的小闺秀6007
2011-03-04 · TA获得超过314个赞
知道答主
回答量:69
采纳率:0%
帮助的人:0
展开全部
初始时: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;输出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvyupu123
2011-03-04 · TA获得超过602个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:220万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
渴侯祎月0hpa89
2011-03-04 · 超过43用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:81.1万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oO花满楼Oo
2011-03-04 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:153万
展开全部
楼上正解,丫的,刚才看错题目了,汗 ;
其实也就是认识清楚a<b<c这个限定条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式