C语言,哪儿错了?

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:11:45
哪儿错了??!在线等。。。

#include <stdio.h>
void main()
{
int a,b,c,*p1,*p2,*p3;
p1=&a,p2=&b,p3=&c;
clrscr();
scanf("%d,%d,%d",&a,&b,&c);
exchange(*p1,*p2,*p3);
printf("%d,%d,%d",*p1,*p2,*p3);
}
exchange(int *q1,int *q2,int *q3)
{
if(*q1<*q2) swap(*q1,*q2);
if(*q1<*q3) swap(*q1,*q3);
if(*q2<*q3) swap(*q2,*q3);
}
swap(int *qt1,int *qt2)
{
int temp;
temp=*qt1;
*qt1=*qt2;
*qt2=temp;

}

swap(int *pt1,int *pt2)
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
exchange(int *q1,int *q2,int *q3)
{
if(*q1<*q2)swap(q1,q2);
if(*q1<*q3)swap(q1,q3);
if(*q2<*q3)swap(q2,q3);
}
main()
{
int a,b,c,*p1,*p2,*p3;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b; p3=&c;
exchange(p1,p2,p3);
printf("\n%d,%d,%d \n",a,b,c);
}

改成这样就行了!传递时应该传指针,而不是指针的值