ASCII码排序 指针替题
ASCII码排序 指针为题
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
3
qwe
asd
zxc
样例输出
e q w
a d s
c x z
怎么执行不了
------解决方案--------------------
两个参数的sort函数中,if语句要把完成交换的3个语句用花括号括起来作为复合语句
------解决方案--------------------
什么乱七八糟的。。。。 给你重写一个行不
------解决方案--------------------
char *x,*y,*z;
lz能告诉我这三个变量的内存地址是什么,如果读到三个字符,应该放到什么地方?
没有初始化的指针不要用,否则会导致程序崩溃的。在定义指针的时候一定主要要初始化啊。
------解决方案--------------------
直接用个二维数组吧,用指针的话要初始化的。
------解决方案--------------------
比如:
char a,b,c;
char *x=&a,*y=&b,*z=&c;
这样指针变量x、y、z就指向了变量a、b、c。
------解决方案--------------------
你直接使用我给的例子就行,使指针变量明确指向a、b、c三个变量。
后面的scanf("%c%c%c",x,y,z); 输入的值就可以保存在a、b、c中。
别的问题也给你指出来了,你参照做一做。
------解决方案--------------------
char *x,*y,*z;
google 指针初始化
------解决方案--------------------
描述
输入三个字符(可以重复)后,按各字符的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;
}
怎么执行不了
------解决方案--------------------
两个参数的sort函数中,if语句要把完成交换的3个语句用花括号括起来作为复合语句
------解决方案--------------------
什么乱七八糟的。。。。 给你重写一个行不
------解决方案--------------------
char *x,*y,*z;
lz能告诉我这三个变量的内存地址是什么,如果读到三个字符,应该放到什么地方?
没有初始化的指针不要用,否则会导致程序崩溃的。在定义指针的时候一定主要要初始化啊。
------解决方案--------------------
直接用个二维数组吧,用指针的话要初始化的。
------解决方案--------------------
比如:
char a,b,c;
char *x=&a,*y=&b,*z=&c;
这样指针变量x、y、z就指向了变量a、b、c。
------解决方案--------------------
你直接使用我给的例子就行,使指针变量明确指向a、b、c三个变量。
后面的scanf("%c%c%c",x,y,z); 输入的值就可以保存在a、b、c中。
别的问题也给你指出来了,你参照做一做。
------解决方案--------------------
char *x,*y,*z;
google 指针初始化
------解决方案--------------------
#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;
}