题目链接:
解题思路:
因为题目中要求输入的三个数最后要从小到大排列,
所以我们先将输入的三个数(此时不管这三个数的大小)暂时对应到 a,b,c 这三个变量之中;
例如输入 3 5 1
此时对应 a b c
因为三个数最多比较三次,
即 a 与 b 比较,
a 与 c 比较,
b 与 c 比较
故在程序中要分别使用三个 if 语句来达到三次比较,
而不能使用 else if ,
这样就只成了比较一次
如果 b 比 c 大时,
就要转换二者的位置,
因为题目要求从小到大排列
参考代码:
#include<bits/stdc++.h>
using namespace std;
void my_sort(int *a,int *b,int *c)
{
if(*a > *b)
{
swap(a,b);//a,b此时已经是指针
}
if(*a > *c)
{
swap(a,c);
}
if(*b > *c)
{
swap(b,c);
}
cout << *a << " " << *b << " " << *c;
}
int main( )
{
int a = 0,b = 0,c = 0;
cin >> a >> b >> c;
my_sort(&a,&b,&c);
return 0;
}