非常简单,因为每组输入数据只有三个字符。~~按ascii码排序之后再创个长度5的字符数组隔一位拷贝过去,在隔开的空位手动赋值为空格即可。~~因为题目没有要求结果要作为一个字符串来输出,因此每输出一个字母时连带输出一个空格即可,但是注意不能循环输出三组“字母+空格”,因为这样输出后第三个字符右边会多出一个空格(会导致PE错误(即格式错误))。因此,先单独输出第一个字母,再循环输出两组**“空格+字母”**即可。
#include<iostream>
using namespace std;
int main()
{
char s[3];
while (cin >> s)
{
for (int i = 0; i < 3; i++)//排序算法(选择排序)
{
for (int j = i + 1; j < 3; j++)
{
if (s[j] < s[i])
{
int t = s[i];
s[i] = s[j];
s[j] = t;
}
}
}
cout << s[0];//输出第一个字母
for (int i = 1; i < 3; i++)
{
cout << " " << s[i];//输出两组“空格+字母”
}
cout << endl;
}
return 0;
}
顺便写一下,“多组输入数据”之类的题目其实是输入一次->输出一次反复循环而不是一次性输入多组又一次性返回多组其实输入输出的顺序没有关系 ,只是程序要有出口,用while(cin>>xxx)即可(不能用while(true),会出现OLE错误)