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

#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);
}

德玛西亚99
浏览 1158回答 3
3回答

红糖糍粑

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

弑天下

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

牧羊人nacy

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);}
打开App,查看更多内容
随时随地看视频慕课网APP