ASCII码排序
时间限制:3000 ms | 内存限制:65535 KB
难度:2
- 描述
- 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
- 输入
- 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
- 输出
- 对于每组输入数据,输出一行,字符中间用一个空格分开。
- 样例输入
-
2 qwe asd
- 样例输出
-
e q w a d s
关于上面输入输出的注意点:并不是说输入了组数n,随后全部输入n组数据后,才全部输出结果。
实际要求样例如下: - //指针
#include <stdio.h>
void swap(char *a, char *b);
int main(int argc, char *argv[])
{
int i,num;
char a,b,c;
scanf("%d",&num);
getchar();
for(i=0;i<num;i++){
scanf("%c%c%c",&a,&b,&c);
getchar();
if(a > b){
swap(&a,&b);
}
if(a>c){
swap(&a,&c);
}
if(b>c){
swap(&b,&c);
}
printf("%c %c %c\n",a,b,c);
}
return 0;
}
void swap(char *a, char *b){
char tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
//异或#include <stdio.h>
void quickswitch(char *a, char *b);
int main(int argc, char *argv[])
{
int i,num;
char a,b,c;
scanf("%d",&num);
getchar();
for(i=0;i<num;i++){
scanf("%c%c%c",&a,&b,&c);
getchar();
if(a > b){
quickswitch(&a, &b);
}
if(a>c){
quickswitch(&a, &c);
}
if(b>c){
quickswitch(&b, &c);
}
printf("%c %c %c\n",a,b,c);
}
printf("C\n");
return 0;
}
void quickswitch(char *a, char *b){
*a ^= *b;
*b ^= *a;
*a ^= *b;
}
//C++
#include <iostream>
using namespace std;
int main()
{
int num;
char a,b,c;
cin >> num;
for(int i=0;i<num;i++){
cin >>a>>b>>c;
if(a > b){
swap(a,b);
}
if(a>c){
swap(a,c);
}
if(b>c){
swap(b,c);
}
cout<<a<<" "<<b << " "<<c<<endl;
}
return 0;
}