急求C编程:编写函数实现两个数的交换,在主函数中任意输入三个数,调用函数对这三个数从大到小排序

我写的程序为 #include <stdio.h>
swap(int *p1,int *p2)
{int t;
t=*p1;
*p1=*p2;
*p2=t;}
void main()
{
int a,b,c;
int *q1,*q2,*q3;
q1=&a;
q2=&b;
q3=&c;
if(a>b)
swap(q1,q2);
if(a>c)
swap(q1,q3);
if(b<c)
swap(q2,q3);
printf("%d,%d,%d",*q1,*q2,*q3);
}不知哪里出错了 望哪位大侠指点一二!!!!

#include <stdio.h>

void swap(int *p1,int *p2)
{int t;
t=*p1;
*p1=*p2;
*p2=t;}
void main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
int *q1,*q2,*q3;
q1=&a;
q2=&b;
q3=&c;
if(a>b)
swap(q1,q2);
if(a>c)
swap(q1,q3);
if(b>c)
swap(q2,q3);
printf("%d,%d,%d",*q1,*q2,*q3);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-05
最后一个比较应该是if(b>c)
swap(q2,q3);
而且程序里面没有输入函数,要加入一个输入函数scanf("%d,%d,%d",&a,&b,&c);
再进行判断,还有一个习惯问题,你最好还是在子函数那边加上空类型的定义void swap(int *p1,int *p2)
,个人觉得是个好习惯。
第2个回答  2012-05-31
if(a>b)
swap(q1,q2);
if(a>c)
swap(q1,q3);
if(b<c)
swap(q2,q3);
这个逻辑对吗 ?为什么我看着这么别扭
上面两个判定跟最后一个明显反掉了,结果肯定也不对了
第3个回答  2012-05-31
你确定是C语言?C的输入是要用函数scanf("%d",&a);
相似回答