ASCII码排序,hdu-2000

 

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

 

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

 

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

 

Sample Input
qwe
asd
zxc
 

 

Sample Output
e q w
a d s
c x z
 
下面是代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	char a,b,c,d,max,min;
	while(scanf("%c%c%c%c",&a,&b,&c,&d)!=EOF)//这里要添加四个变量,因为有一个要用来吸收回车符
	{
		if(a>b)
		{
		   max=a;
		   min=b;
		}
		else
		{
		max=b;
		min=a;
	    }
		if(max<c)
		max=c;
		else if(min>c)
		min=c;
		printf("%c %c %c\n",min,a+b+c-max-min,max);
	}
return 0;
} 

  

   这个题最大的难点就是能不能考虑到吸收回车符了,不过我这个方法就比较笨了,下面是我学到的新方法了!

 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char a,b,c,d,x,y,z;
    while(scanf("%c%c%c%c",&a,&b,&c,&d)!=EOF)
    {
        x=a<b?a:b;
        x=x<c?x:c;
        z=a>b?a:b;
        z=z>c?z:c;
        y=a+b+c-x-z;
        printf("%c %c %c\n",x,y,z);
    }
return 0;
}

 

 改良了,真的简单了好多,不过上面的是我自己想出来的,还是很有成就感的!希望给大家带来帮助!

posted @ 2015-03-29 17:05  Eric_keke  阅读(162)  评论(0编辑  收藏  举报