题目来源: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 }