上面的回答与原题目要求不一样(并且会产生错误),现修改如下:
#include "stdio.h"
void order(int **p,int **q)
{
int *tmp;
if(**p<**q){
tmp = *p;
*p = *q;
*q = tmp;
}
}
void main()
{
int a,b,c;
int *p1,*p2,*p3;
scanf("%d%d%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
order(&p1,&p2);
order(&p1,&p3);//比较出最大者给p1.
order(&p2,&p3);//剩余两个进行比较.
printf("%d,%d,%d",*p1,*p2,*p3);
}
上面在VC6.0下调试通过,程序没有修改a,b,c中的值.
void main()
{
int *p1,*p2,*p3;
scanf("%d,%d,%d",p1,p2,p3);
order(p1,p2);
order(p2,p3);
order(p1,p2);
printf("%d,%d,%d",*p1,*p2,*p3);
}
void order(int *p,int *q)
{
int tmp;
if(*p<*q){
tmp = *p;
*p = *q;
*q = tmp;
}
}
上面的程序有错误,至少缺少头文件。