题目来源:www.acm.hdu.edu.cn
题目编号:2000 ASCII码排序
/*----------------------------------------原题目----------------------------------------*/
【问题描述】
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
【输入】
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
【输出】
对于每组输入数据,输出一行,字符中间用一个空格分开。
【样例输入】
qwe
asd
zxc
【样例输出】
e q w
a d s
c x z
/*-----------------------------题目分析-----------------------------*/
题目的难点在于输入格式。我一开始是采用
scanf(“%c%c%c”,&a,&b,&c);
但是回车会自动被记录为下一个字符,导致错误。我用getch()依然不能成功消除回车的影响。
除了我下面给出的方法,还有一种方法是先判断%c是不是eof,然后get b和c,再get空格,似乎可行。
/*------------------------------Code------------------------------*/
Judge Status : Accepted
Language:C
1 #include<stdio.h>
2 int main() 3 { 4 char a[3],temp; 5 while (scanf("%s",&a)!=EOF) 6 { 7 if(a[0]>a[2]) 8 { 9 temp=a[0]; 10 a[0]=a[2]; 11 a[2]=temp; 12 } 13 if(a[1]>a[2]) 14 { 15 temp= [1]; 16 a[1]=a[2]; 17 a[2]=temp; 18 } 19 20 if(a[0]>a[1]) 21 { 22 temp=a[1]; 23 a[1]=a[0]; 24 a[0]=temp; 25 } 26 printf("%c %c %c\n",a[0],a[1],a[2]); 27 } 28 }