3个数排序 找不出错哪了

sunxc123 2011-12-03 12:52:55
#include <stdio.h>
swap(int *pt1,int *pt2)
{ int p;
p=*pt1;*pt1=*pt2;*pt2=p;
}
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);
}


C板块最近在升级,进不去,在这里请教了,一个简单的3整数排序的问题,最后运行,出现了其他的数据,帮分析下
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbysjw 2011-12-03
  • 打赏
  • 举报
回复

算法有问题
sunxc123 2011-12-03
  • 打赏
  • 举报
回复
HOHO 原来这样哈 自己找半天找不出 谢谢了
LoveYouSelf 2011-12-03
  • 打赏
  • 举报
回复
的确是你的输入出了问题,scanf("%d%d%d",&a,&b,&c);
其中("%d%d%d")是用来确定你输入数据的格式,如果你在%d之间加了逗号,那么你输入数据也要加逗号。
yisikaipu 2011-12-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sunxc123 的回复:]我输入23 45 65 回车
输出的是
23,-858993460,-858993460[/Quote]

看#2楼的输入格式,你忘了输入逗号作为间隔

要空格的话,语句应改为:scanf("%d %d %d",&a,&b,&c);
sunxc123 2011-12-03
  • 打赏
  • 举报
回复
我输入23 45 65 回车
输出的是
23,-858993460,-858993460
「已注销」 2011-12-03
  • 打赏
  • 举报
回复

可能是你输入格式不对.

输入:
23,56,38

输出:

56,38,23

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧