题目要求
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
#include "stdio.h"
//#define LOCAL
int main(){
//#ifdef LOCAL
// freopen("data.in", "r", stdin);
// freopem("data.out", "w", stdout);
//#endif
char a,b,c;
while(scanf("%c%c%c",&a,&b,&c)!=EOF){
if(a<b && b<c ) printf("%c %c %c\n",a,b,c);
else if(a<c && c<b ) printf("%c %c %c\n",a,c,b);
else if(b<a && a<c ) printf("%c %c %c\n",b,a,c);
else if(b<c && c<a ) printf("%c %c %c\n",b,c,a);
else if(c<a && a<b ) printf("%c %c %c\n",c,a,b);
else if(c<b && b<a ) printf("%c %c %c\n",c,b,a);
getchar();
}
return 0;
}
本题是ASCII码排序的水题,在写中间判断过程的时候,略显繁琐,在优化时可以通过设置char数组。此处重点是getchar()的使用,因为getchar可以吸收掉回车或者空格,否则空格和回车也代入数据,所以要严格看好输入格式。