【HDU】2000 ASCII码排序
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
题很简单,主要记录一下刚开始获取三个字符的方法。
输入三个字符,中间无空格。可以采用getchar()的办法一个个获取,或scanf("%c%c%c",&a,&b,&c)的方法;但为了输入多组,每输完1组,都需要一个getchar(),获取'\n',防止影响下一组的字符获取。
此外,因为三个字符间无空格,还可以采用scanf("%s",s)的方法。此时不需要再加上getchar()。
具体代码如下,
#include <stdio.h>
char a[3];
int main()
{
char tem;
while (scanf("%s",a) == 1)//while (scanf("%c%c%c",&a[0], &a[1], &a[2]) == 3)
{
//getchar();
if (a[0] > a[1])
{
tem = a[1];
a[1] = a[0];
a[0] = tem;
}
if (a[0] > a[2])
{
tem = a[2];
a[2] = a[0];
a[0] = tem;
}
if (a[1] > a[2])
{
tem = a[2];
a[2] = a[1];
a[1] = tem;
}
printf("%c %c %c\n",a[0], a[1], a[2]);
}
return 0;
}