描述
输入三个字符(可以重复)后,按各字符的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两种的方法,后者利用冒泡排序的效率比较高点!