4-ASCII码排序
内存限制:64MB 时间限制:3000ms Special Judge: No
题目描述:
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入描述:
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出描述:
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入:
复制
2 qwe asd
样例输出:
e q w a d s
题解:
南阳理工换了个新的系统,感觉不错啊,哈哈哈哈哈,就是旧系统的数据迁移不过去,手动搬,看看哪些值得发的,就摆上来吧,看看以前写的代码,还是好好笑的哈哈哈哈哈哈。
原创代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
char *p=0,ch;
int i,n;
scanf("%d",&n);
getchar();
p=(char *)calloc(n*3,sizeof(char));//吸收回车
for(i=0;i<n*3;i=i+3)
{
*(p+i)=getchar();
*(p+i+1)=getchar();
*(p+i+2)=getchar();
getchar(); //吸收回车键,三个数据为一组
}
for(i=0;i<n*3;i=i+3)
{
if(*(p+i)>*(p+i+1)) //3个if用来排序
{
ch=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=ch;
}
if(*(p+i)>*(p+i+2))
{
ch=*(p+i);
*(p+i)=*(p+i+2);
*(p+i+2)=ch;
}
if(*(p+i+1)>*(p+i+2))
{
ch=*(p+i+1);
*(p+i+1)=*(p+i+2);
*(p+i+2)=ch;
}
printf("%c %c %c\n",*(p+i),*(p+i+1),*(p+i+2));
}
free(p);
return 0;
}