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;
}
浙公网安备 33010602011771号