ASCII码排序

来源:互联网 发布:无限域名的空间 编辑:程序博客网 时间:2024/06/05 09:02

描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
2
qwe
asd
样例输出
e q w
a d s

算法思路:将输入的字母放在容器中排序即可

#include <bits/stdc++.h>using namespace std;list<char> l[10000];int main(){    int N;    cin >> N;    string str;    char chr;    for(int i = 0 ;i < N; i++)    {        cin >> str;        stringstream s(str);        while(s >> chr) l[i].push_back(chr);        l[i].sort();    }    list<char>::iterator it;    for(int i = 0 ; i < N ;i++)    {        it = l[i].begin();        while(it != l[i].end())        {            cout << *it;            it++;            if(it != l[i].end()) cout << " ";        }        cout << endl;    }}

优化代码:

main(){    char a,b,c,d;    int i;    scanf("%d",&i);    getchar();    while(i--)    {        scanf("%c%c%c",&a,&b,&c);        getchar();        if (a>b) {d=a;a=b;b=d;}        if (a>c) {d=a;a=c;c=d;}        if (b>c) {d=b;b=c;c=d;}        printf("%c %c %c\n",a,b,c);    }}
0 0
原创粉丝点击