题目链接【深基3.例8】三位数排序 - 洛谷https://www.luogu.com.cn/problem/P5715
题目描述
给出三个整数a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。
输入
输入三个整数 a,b,ca,b,c,以空格隔开。
输出格式
输出一行,三个整数,表示从小到大排序后的结果。
样例组
样例1
输入 1 14 5
输出 1 5 14
样例2
输入 2 2 2
输出 2 2 2
题目解析
这道题目有三种做法。
第一种做法是将每个数都存入A数组,然后用sort()将每个数排序就可以了。(呃......)
第二种做法则借助于max和min。读入三个数,然后输出三个数中的最小值。然后用if逐个判断那个数是不是三个数中的最小值,并将其改为三个数中任意两个数中的一个数。最后输出它们中的最大值和最小值。
第三种做法则需要使用swap()函数。如果A比B小,交换A,B;如果B比C小,交换B,C;如果A比B小,交换A,B;最后输出A,B,C就行了。
AC代码
第一种做法:
#include<bits/stdc++.h>
using namespace std;
int a[4];
int main()
{
cin>>a[1]>>a[2]>>a[3];
sort(a+1,a+4);
cout<<a[1]<<' '<<a[2]<<' '<<a[3];
return 0;
}
第二种做法:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,d;
cin>>a>>b>>c;d=min(min(a,b),c);
cout<<d<<' ';
if(d==a) a=b;
else if(d==b) b=c;
else c=a;
cout<<min(min(a,b),c)<<' '<<max(max(a,b),c);
return 0;
}
第三种做法:
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int main()
{
cin>>a>>b>>c;
if(a<b) swap(a,b);
if(b<c) swap(b,c);
if(a<b) swap(a,b);
cout<<c<<' '<<b<<' '<<a;
return 0;
}
这道题目就这么多。涨粉一个,更新一篇!