C语言 输入4个整数,要求按由小到大的顺序输出

#include<stdio.h>voidmain(){inta,b,c,d,t;printf("请输入四个整数:\n");scanf("%d,%d,%d,%d",&a,... #include<stdio.h>
void main()
{
int a,b,c,d,t;
printf("请输入四个整数:\n");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

if(a>b)
{ t=a;a=b;b=t;}

if(a>c)
{ t=a;a=c;c=t;}

if(a>d)
{t=a;a=d;d=a;}

if(b>c)
{t=b;b=c;c=t;}

if(b>d)
{t=b;b=d;d=t;}

if(c>d)
{t=c;c=d;d=t;}
printf("四个整数从小到大的顺序输出是:%d,%d,%d,%d",a,b,c,d);
}

看不懂,麻烦解剖一下。只要是卡在这些语句if(a>c){ t=a;a=c;c=t;},不知道什么意思?
展开
 我来答
labhyw
2016-06-30 · TA获得超过211个赞
知道答主
回答量:68
采纳率:0%
帮助的人:50.9万
展开全部
if是可以没有else的,这样的情况下如果if的条件符合,则执行if语句,否则不执行,直接到下一个if。也就是说,如果a不大于b,也就是a小于b,那么就像刚刚说的,不执行这个if就是了,计算机会往下阅读程序,也就是去判断下一个if,记住一句话“if条件不符合就不执行”。else只是相当于if不符合的话其他情况下执行什么,如果没有else,那就表示,if不符合,程序保持不动。
这个程序给你举个实例讲解也许你就明白了
假设输入为1,3,4,2
1不大于3,第一个if不执行,目前顺序为1,3,4,2
1不大于4,第二个if不执行,目前顺序为1,3,4,2
1不大于2,第三个if不执行,目前顺序为1,3,4,2
3不大于4,第四个if不执行,目前顺序为1,3,4,2
3大于2,第五个if执行,实现交换,目前顺序为1,2,4,3
4大于3,第六个if执行,实现交换,最后顺序为1,2,3,4

其实你仔细想想,如果第一个if执行,实现交换,那么第二个if中的a已经是交换过后的那个较小的数。第三个同理。也就是说,前3个if执行完以后确保了第1个数是4个数字中最小的,第四第五确保第二个数在剩下的3个数中是最小的(也就是4个数字中第二小的),第6个if确保第三个数小于第四个数。这样子就实现了整个结构的排序。希望能帮到你。
丶菜鸡几鸡几
推荐于2017-11-22 · TA获得超过104个赞
知道小有建树答主
回答量:110
采纳率:0%
帮助的人:37.2万
展开全部
t=a; a=c; c=t; 这是将a的值和c的值进行交换的意思。
设置一个中间变量t,保存a的值。
然后将c的值赋给a,此时a的值被覆盖,然后a原来的值保存在t里,所以c=t。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海贼罗罗亚zoro
2016-06-29 · TA获得超过140个赞
知道小有建树答主
回答量:256
采纳率:50%
帮助的人:87.8万
展开全部
你卡住的语句的作用是如果a<c,就交换a c的值。先把a的值赋给t,再将c的值赋给a,最后将t的值赋给c.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2016-06-29 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3542万
展开全部
通过中间变量t交换a和c中存放的数,执行后a存放原先存放在c中的数,c存放原先存放在a中的数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式