Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
qwe
asd
zxc
Sample Output
e q w
a d s
c x z
答案:
#include<stdio.h>
int main()
{
char a,b,c,temp;
while((scanf("%c%c%c%*c",&a,&b,&c)))
{
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);
}
return 0;
}
总结:%*c可以跳过任何一个输入的值,比如这道题,输完三个字符时,再敲回车的话,就可以过滤掉回车的值,如果不写这个的话,后面数的字母就会被覆盖掉。
所以,继续读取值的时候,abc变量里面就储存的是\n F D 然后E就会排到下一轮。
网友评论