哪位c语言大神帮我说明一下这道题?

#include<stdio.h>voidmain(){inta=4,b=3,c=5,t=0;if(a<b)t=a;a=b;b=t;if(a<c)t=a;a=c;c=t;... #include<stdio.h>
void main()
{
int a=4,b=3,c=5,t=0;
if(a<b) t=a;a=b;b=t;
if(a<c) t=a;a=c;c=t;
printf("%d%d %d \n",a,b,c);
}
为什么结果是50 3呢?
展开
 我来答
天星旋光
2011-03-19
知道答主
回答量:36
采纳率:0%
帮助的人:20.8万
展开全部
#include<stdio.h>
void main()
{
int a=4,b=3,c=5,t=0;
if(a<b) t=a;a=b;b=t;
/*
if语句只会影响到下一条语句
a=4,b=3,所以a<b不成功,t=a不执行。
接下来执行a=b;此时a=b=3
再执行b=t;此时b=t=0.
至此a=3,b=0,c=5,t=0
*/
if(a<c) t=a;a=c;c=t;
/*
同理a=3,c=5,a<c判断成功,执行t=a,此时t=a=3
接下来执行a=c;此时a=c=5
再执行c=t;此时c=t=3.
至此a=5,b=0,c=3,t=3
*/
printf("%d%d %d \n",a,b,c);
}
7g18jxso7
2011-03-19 · TA获得超过1328个赞
知道小有建树答主
回答量:1442
采纳率:100%
帮助的人:0
展开全部
1,是往后移一位,继续查找
for循环是找到x的位置后,将数组a中x位置后面的值往前移一位,即a[i]=a[i+1]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5b2e74f
2011-03-19 · TA获得超过123个赞
知道答主
回答量:72
采纳率:0%
帮助的人:49.6万
展开全部
a=5,b=0,c=3
%d前面两个没空格分隔

还有if是要用大括号的,如果没有,就只执行后面一句!
不然a=b,b=t是不关if管的了,它照样执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhonghuayinxxx
2011-03-20
知道答主
回答量:12
采纳率:0%
帮助的人:4.8万
展开全部
一条语句一条语的看:
int a=4,b=3,c=5,t=0;
//这个是赋值不用说了
if(a<b) t=a;a=b;b=t;
//4<3为假if条件不成立,t=a;不执行。继续往下执行a=b;现在a=3,。执行b=t;现在b=0;
if(a<c) t=a;a=c;c=t;
//a=3,c=5,a<c成立;if后的语句成立,t=a;现在t=3。a=c;因为c=5,即现在a=5。c=t;现在的t=3,所以c=3
到此为止,a=5,b=0,c=3,t=3
printf("%d%d %d \n",a,b,c);
第二%d后有个空格,所以结果是 50 3,如果没有应该是503
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
451361904
2011-03-21 · TA获得超过441个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:88.4万
展开全部
你这个编程啊···先看编程规范吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天才小熊猫pd
2011-03-21
知道答主
回答量:59
采纳率:100%
帮助的人:19.5万
展开全部
你应该把if后面的3个语句括起来。不然只执行了if(a<b) t=a;而后面的a=b;b=t;
都不是if的范围内
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式