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 <string.h>
void swap(char *a, char *b)
{
char tmp = *a;
*a = *b;
*b = tmp;
}
int
main( int argc, char **argv )
{
int n;
char buf[4];
scanf("%d", &n);
for ( int i = 0; i < n; ++i )
{
scanf("%s", buf);
// 首先得到最小的放到buf[0]
if ( buf[0] > buf[1] )
swap(buf, buf+1);
if ( buf[0] > buf[2] )
swap(buf, buf+2);
// 再排老二与老三
if ( buf[1] > buf[2] )
swap(buf+1, buf+2);
for ( int i = 0; i < 3; ++i )
printf( "%c ", buf[i] );
printf( "\n" );
}
return 0;
}
作者:帅得不敢出门 c++哈哈堂31843264