C语言,这个的结果,具体解释一下,怎么算的?--------4599(结果)

main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a=c;c=t;if(a<c&&b<c)t=b;b=a;a=t;printf("%d... main()
{
int a=3,b=4,c=5,t=99;
if(b<a&&a<c) t=a;a=c;c=t;
if(a<c&&b<c) t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
展开
 我来答
古萧萧瑟
2012-04-15 · TA获得超过553个赞
知道小有建树答主
回答量:111
采纳率:100%
帮助的人:80.4万
展开全部
运行过程是这样的
第一条条件句中 if(b<a&&a<c) t=a; 当这个条件成立时,才执行t=a; 此条件不成立,所以执行下条语句 a=c; 此时a=5, 语句 c=t; c=99
第二条条件句中 if(a<c&&b<c) t=b; 当这个条件成立时,才执行t=b; 此条件成立,所以执行语句t=b; b=a; a=t; 此时 t=4, b=5, a=4.

因此最后运行结果 a=4, b=5, c=99 .
此题考的就是if 语句括号问题
if(b<a&&a<c) t=a;a=c;c=t;
if(a<c&&b<c) t=b;b=a;a=t;

if(b<a&&a<c) { t=a;a=c;c=t;}
if(a<c&&b<c) { t=b;b=a;a=t;}
是两个意思
前者结果 4599
后者结果 435
jsfjsf25210
2012-04-15 · TA获得超过123个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:136万
展开全部
#include <stdio.h>

main()
{
int a=3,b=4,c=5,t=99;

if(b<a&&a<c)
t=a;
a=c;
c=t;
if(a<c&&b<c)
t=b;
b=a;
a=t;

printf("%d%d%d\n",a,b,c);
}

这个程序 只需把你的书写格式改变下就很容易看出来了, 一个if如果不加{}那么只能管一行语句,所以 你看我的对齐 你就明白了, 两个if只对其中的两个语句进行了赋值, 剩下4个语句是在 两个if之外的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
375875192
2012-04-15 · TA获得超过362个赞
知道答主
回答量:189
采纳率:0%
帮助的人:134万
展开全部
第一句,b < a && a < c
这里的4不小于3,所以不成立,不执行if后面的语句
t = a不执行
而后面的两个要执行
即a = c == 5
c = t == 99
第二句, a < c && b < c ,&& 两边的式子都成立,
执行后面的if语句

所以t = b = 4

b = a = 5
a = t = 4;

所以是4599
我晕,这样写把我搞晕了,要不是执行了下,还真被晕过去了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sky0411125
2012-04-15
知道答主
回答量:51
采纳率:0%
帮助的人:13.4万
展开全部
对于if(b<a&&a<c) t=a;中的If条件语句只对;前的t=a有效,下来a=c表示a的赋值发生改变,a=5了。以此类推哦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式