题目描述
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入 Copy
qwe asd zxc
样例输出 Copy
e q w a d s c x z
法一
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a,b,c,d1,e1,temp;
while(scanf("%c%c%c\n",&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);
}
return 0;
}
法二:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a,b,c,d1,e1,temp;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
getchar();//利用getchar来吸收掉换行符
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;
}
scanf中\n
例scanf("%c\n",&a);
scanf函数的第一个参数指定了后面变量读取的格式,这样写的话会按照 :
字符 回车 的格式读取,读到回车之后会继续读下一行,这样就避免了把换行符赋给下一行的a的问题