C语言指针求解

#include<stdio.h>intmain(){voidswap(int*p1,int*p2);inta,b,c,*p1,*p2,*p3;printf("pleas... #include <stdio.h>
int main ()
{void swap(int *p1,int *p2);
int a,b,c,*p1,*p2,*p3;
printf("please enter three number:");
scanf("%d%d%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
swap(p1,p2);
swap(p2,p3);
swap(p1,p3);
printf("%d %d %d",*p1,*p2,*p3);
return 0;}
void swap(int *p1,int *p2)
{int *t;
if(*p1<*p2)
{t=p1;p1=p2;p2=t;}}
为什么不能按从大到小输出?
展开
 我来答
Pro_stars
2013-11-05 · TA获得超过159个赞
知道答主
回答量:30
采纳率:0%
帮助的人:33.1万
展开全部
#include <stdio.h>
void swap(int *p1,int *p2);
int main ()
{
int a,b,c,*p1,*p2,*p3;
printf("please enter three number:");
scanf("%d%d%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
swap(p1,p2);
swap(p2,p3);
swap(p1,p2); //here
printf("%d %d %d",*p1,*p2,*p3);
return 0;
}
void swap(int *p1,int *p2) //这个函数更改
{
int t;
if(*p1<*p2)
{
t=*p1;*p1=*p2;*p2=t;
}
}
程序改的我好蛋疼啊,应该说你这算法本身是不对的,没人这样排序的,我想你重点应该放在swap函数中,学习传值和传地址值的区别,程序现在我大概试了下,多数情况还是可以排的,不保证全对,因为你的算法有问题。
百度网友cdabd8e
2013-11-05 · 超过14用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:40.5万
展开全部
调用三次函数不能排序 你可以举个例子试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式