为什么swap()函数不起作用???
#include<math.h>#include<stdio.h>swap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){in...
#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);
} 展开
#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);
} 展开
5个回答
展开全部
考的是传值和传引用的区别,只把值穿进去了,没穿地址。
可以改为swap(int& x,int&y)
或者swap(int* x,int* y)
函数里面内容不变
可以改为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++编译器,你只能用指针了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为在函数中的交换属于形参的交换,而形参的交换对实参是不起作用的,可以讲变量设置为全局变量就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
应该传指针进去。
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);
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已经起作用了,只是你看不到而已,因为你输出的是a,b的值,x,y的值已经互换了,不信你打断点看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询