int a=8,b=7,c=6; if(a<b) if(b>c) {a=c;c=b;} printf("%d,%d,%d\n",a,b,c); 输出结果是 6,7,7 求怎么来的

求详细过程啊!谢谢...... 求详细过程啊!谢谢... 展开
 我来答
坐倚北风
推荐于2018-03-28
知道答主
回答量:25
采纳率:100%
帮助的人:18.4万
展开全部
如果结果是6,7,7的话第一个if(a<b)后面应该有个分号;如果像你现在这样写的没有分号的话,输出结果应该是8,7,6。因为没有分号的话第二个if语句就成了第一个if语句中的程序段了,第一个if语句不成立,后面的程序段不再执行。如果第一个if后面有分号,第二个if语句是一个单独的条件语句,第一个不成立,接着判断第二个,成立,执行赋值语句。下面是在C++控制台中的程序及执行结果:
1、第一个if不带分号:
int _tmain(int argc, _TCHAR* argv[])
{
int a=8,b=7,c=6;
if(a<b)
if(b>c)
{
a=c;
c=b;
}
cout<<a<<b<<c;
system("pause");
return 0;
}
结果:876请按任意键继续. . .
2、第一个if后加分号:
int _tmain(int argc, _TCHAR* argv[])
{
int a=8,b=7,c=6;
if(a<b); //加分号
if(b>c)
{
a=c;
c=b;
}
cout<<a<<b<<c;
system("pause");
return 0;
}
结果:677请按任意键继续. . .
刘刘1234561
2012-12-08 · TA获得超过311个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:131万
展开全部
首先看第一个if语句,因为a>b,所以执行第二个if语句,又因为b>c,所以执行{a=c;c=b;}这个循环体,这样就有a=6,c=7,而b还是原来的7。。所以最后总输出结果就是6,7,7.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左左强强峰峰
2012-12-08 · TA获得超过441个赞
知道小有建树答主
回答量:481
采纳率:100%
帮助的人:132万
展开全部
if(a<b)//你这里抄错了,这里至少还有一个分号;否则结果不可能是你说的那样。
if(b>c) {a=c;c=b;} //这里b=7>c=6;所以执行a=c=6,所以 a =6,c = 6; c=b=7; 以 b=7 ,c=7(这里c的值再次改变)所以 a=6 , b=7, c=7;
printf("%d,%d,%d\n",a,b,c);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友be1548e
2012-12-08
知道答主
回答量:37
采纳率:0%
帮助的人:16.9万
展开全部
主要是这里:if(b>c) {a=c;c=b;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式