C程序测试出错,求解
小弟初学C语言,今遇一题,百思不解。题:输入3个整数,要求程序按由大到小的顺序输出。(要求用指针解题)
以下是我的解题,但总是出错,查了N遍也查不到出错在哪。
#include<stdio.h>
int main()
{
void swap(int *,int *,int *); /*函数声明*/
int a,b,c;
int *p1,*p2,*P3;
printf("请输入3个整数:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
printf("排序前:a=%d,b=%d,c=%d\n",a,b,c);
swap(p1,p2,p3);
printf("排序后:a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
void swap(int *q1,int *q2,int *q3)
{
void swap2(int *,int *); /*函数声明*/
if(*q1<*q2)
swap2(q1,q2);
if(*q1<*q3)
swap2(q1,q3);
if(*q2<*q3)
swap2(q2,q3);
}
void swap2(int *x,int *y)
{
int temp;
temp=*x;*x=*y;*y=temp;
}