三个数从小到大排序
日期:2015-05-16 08:22:12
最后更新日期:2015-05-16 08:36:23
描述
现在要写一个程序,实现给三个数排序的功能
输入
输入三个正整数
输出
给输入的三个正整数排序
样例输入
20 7 33
样例输出
7 20 33
解答:
这题值得写的是交换两个数的写法,这里a^b相当于保存了一个临时值,其实这是计算共同利用了中间结果。
[code lang="cpp"]
#include<stdio.h>
#include<stdlib.h>
//异或交换 a^b相当于被保存了一个临时值
int less(int &a,int &b){
if (a>b){
a=a^b;
b=a^b;
a=a^b;
}
return 0;
}
//线性变换,凡是这种类似的线性变换都可以
int less1(int &a,int &b){
if (a>b){
a=a+b;
b=a-b;
a=a-b;
}
return 0;
}
int solve(){
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
less(a,b);
less(a,c);
less(b,c);
printf("%d %d %d\n",a,b,c);
return 0;
}
int main()
{
solve();
return 0;
}
[/code]