Responsive image

问题 1381 -- ASCII码排序(多实例测试)

1381: ASCII码排序(多实例测试)

时间限制: 1 Sec  内存限制: 128 MB
提交: 993  解决: 654
[提交][状态][讨论版][命题人:]

题目描述

输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

输入描述

输入数据有多组,每组占一行,有三个字符组成,之间无空格。

输出描述

对于每组输入数据,输出一行,字符中间用一个空格分开。

样例输入

qwe
asd
zxc

样例输出

e q w
a d s
c x z

提示

注意:scanf("%c",&ch)格式读字符时,所有字符都是有效输入,如回车符、空格符等,如以下程序不能正常读入第二组输入数据

while(scanf("%c%c%c",&a,&b,&c)!=EOF)

{

if(a>b)

{

temp=a;a=b;b=temp;

}

if(a>c)

{

temp=a;a=c;c=temp;

}

if(b>c)

{

temp=b;b=c;c=temp;

}

printf("%c %c %c\n",a,b,c);

}



原因是第一行输入最后的回车会被下一个scanf语句中的第一个%c读给a;

解决方法如下:

while(scanf(" %c%c%c",&a,&b,&c)!=EOF)

{

   ......

}



while(scanf("%c%c%c ",&a,&b,&c)!=EOF)

{

   ......

}




while(scanf("%c%c%c\n",&a,&b,&c)!=EOF)

{

   ......

}

在scanf的格式控制串中加入空白符的作用是跳过0个或多个空白符(包括空格、回车或制表符)。

来源

 

[提交][状态]
ACM算法攻关部