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