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

千羽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; } 这个哪里出错啦?
...全文
43 点赞 收藏 5
写回复
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
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告