用简化的桶排序,再用if判断输出就行
附AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a, b, c, n[3], j = 0;//n为排序用数组,j为排序时下标
    char s[3];//s为输出顺序
    cin>>a>>b>>c;//输入数据
    cin>>s;
    for(int i=1; i<=100; ++i)//循环排序【排序】
    {
        if(i == a)//如果是a,就把它放在第一位(最小)
        {
            n[j] = a;
            ++j;
            continue;
        }
        if(i == b)//同上
        {
            n[j] = b;
            ++j;
            continue;
        }
        if(i == c)//同上
        {
            n[j] = c;
            ++j;
            continue;
        }
        if(j ==3)//如果三个数顺序已经排好,退出循环
            break;
    }
    for(int i=0; i<3; ++i)//选择输出【输出】
    {
        if(s[i] == 'A')//检查顺序
            cout<<n[0];
        if(s[i] == 'B')
            cout<<n[1];
        if(s[i] == 'C')
            cout<<n[2];
        cout<<' ';
    }
    return 0;//结束程序
}