ASCII码排序
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
2
-
描述
-
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
-
输入
- 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。 输出
- 对于每组输入数据,输出一行,字符中间用一个空格分开。 样例输入
-
3 qwe asd zxc
样例输出
-
e q w a d s c x z
#include<stdio.h>
#include<stdlib.h>
void sort(char*h)
{
char a;
if(*h>*(h+1))
{
a=*(h+1);
*(h+1)=*h;
*h=a;
}
if(*h>*(h+2))
{
a=*(h+2);
*(h+2)=*h;
*h=a;
}
if(*(h+1)>*(h+2))
{
a=*(h+2);
*(h+2)=*(h+1);
*(h+1)=a;
}
printf("%c %c %c\n",*h,*(h+1),*(h+2));
}
int main()
{
int n=0,i=0;
char *p,a[4],*h;
scanf("%d",&n);
h=p=(char*)malloc(sizeof(char)*n*3);
for(i=0;i<n;i++)
{
scanf("%s",a);
*h=a[0];
*(h+1)=a[1];
*(h+2)=a[2];
h+=3;
}
for(i=0;i<n;i++)
{
sort(p);
p+=3;
}
return 0;
}