Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
下面是代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char a,b,c,d,max,min; while(scanf("%c%c%c%c",&a,&b,&c,&d)!=EOF)//这里要添加四个变量,因为有一个要用来吸收回车符 { if(a>b) { max=a; min=b; } else { max=b; min=a; } if(max<c) max=c; else if(min>c) min=c; printf("%c %c %c ",min,a+b+c-max-min,max); } return 0; }
这个题最大的难点就是能不能考虑到吸收回车符了,不过我这个方法就比较笨了,下面是我学到的新方法了!
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char a,b,c,d,x,y,z; while(scanf("%c%c%c%c",&a,&b,&c,&d)!=EOF) { x=a<b?a:b; x=x<c?x:c; z=a>b?a:b; z=z>c?z:c; y=a+b+c-x-z; printf("%c %c %c ",x,y,z); } return 0; }
改良了,真的简单了好多,不过上面的是我自己想出来的,还是很有成就感的!希望给大家带来帮助!