【题目描述】
三个整数分别为 A,B,C。这三个数字不会按照这样的顺序给你,但它们始终满足条件:A<B<C。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。
【输入格式】
第一行包含三个正整数A,B,C,不一定是按这个顺序。这三个数字都小于或等于 100。第二行包含三个大写字母 A,B 和 C(它们之间没有空格)表示所需的顺序。
【输出格式】
在一行中输出 A,B 和 C,用一个空格隔开。
输入
6 4 2 CAB
输出
6 2 4
解决方法
分析题目可得要求按一定的顺序输出给定的三个数。
此题要求的是三个数,数据量小,不嫌麻烦的话直接if判断输出即可。
但是还有更加便捷快速的方法:
首先,我们要知道ABC字母本身就有大小之分,ASCLL码相邻相差一,所以用不着那么麻烦来比较看顺序是什么,顺序已经在ABC字母之中。
下面直接上代码。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[3];
cin >> a[0] >> a[1] >> a[2];
sort(a, a + 3);//直接按小到大排
string b;
cin >> b;
//b[i] - 'A'即为想要先输出的顺序
cout << a[b[0] - 'A'] << " " << a[b[1] - 'A']<<" " << a[b[2] - 'A'];
return 0;
}
这样处理代码简洁,并且不仅仅局限于小数据。