- 注册时间
- 2007-5-18
- 最后登录
- 1970-1-1
|
正在学C遇到一问题,题目大致是这样的:利用指针在被调用函数里将输入的三个数里最大的和最小的选出来。
这是我根据谭浩强教授答案提示做的,不知道什么地方错了,请高手指点一二。
void maxandmin(int a, int b, int c, int *pmax, int *pmin)
{ int max,min;
max=a;
if(b>max)max=b;
if(c>max)max=c;
min=a;
if(b<min)min=b;
if(c<min)min=c;
*pmax=max;
*pmin=min;
}
main()
{ int x,y,z,w,u;
int *m,*n;
*m=w;
*n=u;
printf("please input three numbers:\n");
scanf("%d%d%d",&x,&y,&z);
maxandmin(x,y,z,*m,*n);
printf("max=%d,min=%d\n",w,u);
}
下面的是我自己写的,运行结果完全正确,但好象思路没有上面的简练。
xzdx(p1,p2,p3)
int *p1,*p2,*p3;
{
int t;
if(*p1<=*p2)
{
t=*p2; *p2=*p1; *p1=t;
}
if(*p1<=*p3)
{
t=*p3; *p3=*p1; *p1=t;
}
if(*p2<=*p3)
{
t=*p3; *p3=*p2; *p2=t;
}
}
main()
{
int a,b,c,*pa,*pb,*pc;
printf("please enter three numbers:\n");
scanf("%d%d%d",&a,&b,&c);
pa=&a;
pb=&b;
pc=&c;
xzdx(pa,pb,pc);
printf("max=%d,min=%d\n",a,c);
} |
|