题目来源:www.acm.hdu.edu.cnspa
题目编号:2000 ASCII码排序code
/*----------------------------------------原题目----------------------------------------*/blog
【问题描述】排序
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。get
【输入】io
输入数据有多组,每组占一行,有三个字符组成,之间无空格。class
【输出】方法
对于每组输入数据,输出一行,字符中间用一个空格分开。数据
【样例输入】di
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 }