c语言:编写一个函数名字为sort,完成对三个整数从小到大排序,要求用指针实现。

#include<stdio.h>
int sort(int *a,int *b,int *c)
{
int *d;
if(*a>*b)
{d=a;a=b;b=d;}
if(*a>*c)
{d=a;a=c;c=d;}
if(*b>*c)
{d=b;b=c;c=d;}
printf("这个三个数从小到大排列是:%d,%d,%d\n",a,b,c);
}
void main()
{
int a,b,c,*x,*y,*z;
printf("输入3个整数:");
scanf("%d,%d,%d",&a,&b,&c);
x=&a;
y=&b;
z=&c;
sort(*x,*y,*z);

}

这是我的代码,编译出来是错误的,但是我不知道怎么改,我现在还不是很清楚用函数调用指针什么时候加*,希望大家指点一下,谢谢了~

#include<stdio.h>
int sort(int *a,int *b,int *c)
{
int d;
if(*a>*b)
{d=*a;*a=*b;*b=d;}
if(*a>*c)
{d=*a;*a=*c;*c=d;}
if(*b>*c)
{d=*b;*b=*c;*c=d;}
printf("这个三个数从小到大排列是:%d,%d,%d\n",a,b,c);
}
void main()
{
int a,b,c,*x,*y,*z;
printf("输入3个整数:");
scanf("%d,%d,%d",&a,&b,&c);
x=&a;
y=&b;
z=&c;
sort(x,y,z);

}

好好学学指针吧

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-16
修改通过了:

#include<stdio.h>

void sort(int *a,int *b,int *c)
{
int d;
if(*a>*b) // a,b,c是指针,对其解引用如*a才是他们指向的值
{d=*a;*a=*b;*b=d;}
if(*a>*c)
{d=*a;*a=*c;*c=d;}
if(*b>*c)
{d=*b;*b=*c;*c=d;}
printf("这个三个数从小到大排列是:%d,%d,%d\n",*a,*b,*c);
}

void main()
{
int a,b,c;
printf("输入3个整数:");
scanf("%d%d%d",&a,&b,&c);
sort(&a,&b,&c); // 参数是指针,传的就是地址
}本回答被网友采纳
相似回答