ASCII码排序 指针为题
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
3
qwe
asd
zxc
样例输出
e q w
a d s
c x z
#include<stdio.h>
int main()
{int sort(char*,char*,char*);
int n;
char *x,*y,*z;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{scanf("%c%c%c",x,y,z);
sort(x,y,z);
}
return 0;
}
int sort(char *x,char *y,char *z)
{
int sort(char* ,char*);
sort(x,y);
sort(x,z);
sort(y,z);
printf("%c %c %c",*x,*y,*z);
printf("\n");
return 0;
}
int sort(char *x,char *y)
{char t;
if(*x>*y)
t=*x;
*x=*y;
*y=t;
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int sort(char*,char*,char*);//声明最好放外面
int main()
{
int n;
char *x,*y,*z;
char *p,*q;
x=(char*)malloc(sizeof(char)*1);//指针要初始化,就得先开辟空间
y=(char*)malloc(sizeof(char)*1);
z=(char*)malloc(sizeof(char)*1);
p=(char*)malloc(sizeof(char)*1);//之所以增加这句是用来接收换行符的
scanf("%d%c",&n,p);//当你输入一个整数时,再按回车键,如果像你之前的做法,回车键会被底下的x接收
//所以用p 来接收回车键
for(int i=1;i<=n;i++)
{
scanf("%c%c%c%c",x,y,z,p);//所以用p 来接收回车键
sort(x,y,z);
}
free(x);
free(y);
free(z);
free(p);
return 0;
}
int sort(char *x,char *y,char *z)
{
char t;
if(*x>=*y && *x>=*z)
{
t=*x;
*x=*z;
*z=t;
if(*x>=*y)
{
t=*x;
*x=*y;
*y=t;
}
}
if(*y>=*x && *y>=*z)
{
t=*y;
*y=*z;
*z=t;
if(*x>=*z)
{
t=*x;
*x=*z;
*z=t;
}
}
if(*z>=*y && *z>=*x)
{
if(*x>=*y)
{
t=*x;
*x=*y;
*y=t;
}
}
printf("%c %c %c",*x,*y,*z);
printf("\n");
return 0;
}