请教大神一个问题,麻烦解答一下我的疑惑,谢谢

千羽s 2019-05-07 11:10:24
#include<iostream> using namespace std; void swaps(int *pt1,int *pt2) { int a; a = *pt1; *pt1 = *pt2; *pt2 = a; } void swap(int *p1,int *p2,int *p3) { if (*p1 < *p2) swaps(p1, p2); if (*p1 < *p3) swaps(p1, p2); if (*p2 < *p3) swaps(p2, p3); } int main() { int a, b, c; cin >> a >> b >> c; swap(&a, &b, &c); cout << *p1 << endl << *p2 << endl << *p3 << endl; } 这个哪里出错啦?
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
s_father 2019-05-14
  • 打赏
  • 举报
回复
借用1楼的话,你自己好好想想为啥吧
CaptainXue 2019-05-13
  • 打赏
  • 举报
回复
程序的错误在于:cout << *p1 << endl << *p2 << endl << *p3 << endl; 应该更改为:cout << a << endl << b << endl << c << endl; 出现这样的问题,不知道是因为你写代码的疏忽,还是你对自定义函数参数的使用没有掌握, *p1,*p2,*p3在自定义函数调用结束后,就不存在了,你输出他们的值,程序肯定找不到它们,关于这点,我的博文上有说明!
weixin_44418697 2019-05-13
  • 打赏
  • 举报
回复
你可能需要看看教材书
636f6c696e 2019-05-08
  • 打赏
  • 举报
回复
而且你代码逻辑是错的,应该改成这样,具体为什么自己好好想吧
void swap(int *p1,int *p2,int *p3)

{

if (*p1 < *p2) swaps(p1, p2);

if (*p2 < *p3) swaps(p2, p3);

if (*p1 < *p2) swaps(p1, p2);

}
636f6c696e 2019-05-08
  • 打赏
  • 举报
回复
你main函数定义的是a b c啊,不是p1 p2 p3

64,682

社区成员

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

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