问:任意输入三个数,编程实现对这三个数由小到大进行排序,并将排序后的结果显示在屏幕上。
答:
代码为
#include<stdio.h>
main()
{
int a,b,c,t;
printf("请输入a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>b) //若a>b则ab互换
{
t=a;
a=b;
b=t;
}
if(a>c) //若a>c则ac互换
{
t=a;
a=c;
c=t;
}
if(b>c) //若b>c则bc互换
{
t=b;
b=c;
c=t;
}
printf("排序后的顺序为:%d,%d,%d",a,b,c);
}
心得总结:本题是一个简单的排序,将三个输入的数a,b,c从小到大排序,搞清题目是一个简单的逻辑问题即可,此题虽然不难,却是为以后复杂的排序打下逻辑基础,所以我觉得有必要拿出来做一下。首先是要考虑获得了三个数如何判断这三个数是否是从小到大排序的,如果本来就是这种顺序就没必要再排了,所以我们要先进行判断,若a小于b,b小于c且a小于c则顺序正确,所以若a大于b则ab互换,若a大于c则ac互换,若b大于c则bc互换,且b和c的判断顺序必须放最后,否则会出错。互换的方式即找一个中间变量把x赋给中间变量,再把y赋给x,最后把中间变量赋给y即可。