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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!