问题描述
编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。
输入格式:输入只有一行,即三个整数,中间用空格隔开。
输出格式:输出只有一行,即排序后的结果。
输入输出样例
样例输入
9 2 30
样例输出
30 9 2
方法1
#include<iostream>
using namespace std;
int main(void)
{
int a,b,c;
int max,mid,min;
cin >> a >> b >> c;
if(a > b) {max = a;min = b;} else {max = b;min = a;}
if(c >= max) {mid = max;max = c;}
if(c <= min) {mid = min;min = c;}
if(c > min && c < max) mid = c;
if(a == b && b == c){max = a;mid = b;min = c;}
cout << max << " " << mid << " " << min;
return 0;
}
方法2
#include<iostream>
#include<algorithm>
using namespace std;
bool complare(int a,int b)//重新定义排序方式
{
return a > b;
}
int main()
{
int a[3];
for(int i = 0;i < 3;i++)
cin >> a[i];
sort(a,a + 3,complare);//在这里就不需要对complare函数传入参数了,//这是规则
for(int i = 0;i < 3;i++)
cout << a[i] << " ";
return 0;
}