为了账号安全,请及时绑定邮箱和手机立即绑定

为什么swap()函数不起作用?

为什么swap()函数不起作用?

德玛西亚99 2019-02-07 16:11:27
#include<math.h>#include<stdio.h>swap(int x,int y){int temp;temp=x;x=y;y=temp;}main(){int a,b;scanf("%d,%d",&a,&b);if(a<b) swap(a,b);printf("%d,%d\n",a,b);}
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

考的是传值和传引用的区别,只把值穿进去了,没穿地址。
可以改为swap(int& x,int&y)
或者swap(int* x,int* y)
函数里面内容不变

查看完整回答
反对 回复 2019-03-22
?
弑天下

TA贡献1818条经验 获得超8个赞

这个swap(int x, int y)用的是值传递,也就是x y是a b的拷贝,修改x y 不会影响a b。如果是在c++编译器下,可以将其改为swap(int &x, int &y);如果不是c++编译器,你只能用指针了

查看完整回答
反对 回复 2019-03-22
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

swap(int x,int y)
应该传指针进去。
swap(int *x,int *y)
{int temp;
temp=*x;
*x=*y;
*y=temp;}

main()
{int a,b;
scanf("%d,%d",&a,&b);
if(a<b) swap(&a, &b);
printf("%d,%d\n",a,b);
}



查看完整回答
反对 回复 2019-03-22
  • 3 回答
  • 0 关注
  • 1157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信