当前位置: 代码迷 >> 综合 >> NYOJ - ASCLL码排序
  详细解决方案

NYOJ - ASCLL码排序

热度:32   发布时间:2024-01-20 18:22:30.0
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
3
qwe
asd
zxc
样例输出
e q w
a d s
c x z
#include <iostream>
using namespace std;
void fun(char s[])
{char ch;if(s[0] > s[1]){ch = s[0];s[0] = s[1];s[1] = ch;}if(s[0] > s[2]){ch = s[0];s[0] = s[2];s[2] = ch;}if(s[1] > s[2]){ch = s[1];s[1] = s[2];s[2] = ch;}
}
int main(void)
{char s[4];int n;cin>>n;while(n--){cin>>s;fun(s);cout<<s[0]<<' '<<s[1]<<' '<<s[2]<<endl;}
}
#include <iostream>
using namespace std;
void fun(char s[])
{for(int i = 0; i < 2; i++){for(int j = 0; j < 2 - i; j++){if(s[j] > s[j + 1]){int ch = s[j];s[j]= s[j + 1];s[j + 1] = ch;}}}
}
int main(void)
{char s[4];int n;cin>>n;while(n--){cin>>s;fun(s);cout<<s[0]<<' '<<s[1]<<' '<<s[2]<<endl;}
}

以上,有两种解法,但是,我AC两种的方法,后者利用冒泡排序的效率比较高点!
  相关解决方案