这个互换值的方法为什么不成功?

CSDN问答 2021-12-30 10:42:43 阅读数:258

方法 成功 互换 不成功
#include<stdio.h>void f(int x,int y){ int t; if(x<y){ t=x; x=y; y=t; }}int main(){ int a=2,b=3; f(a,b); printf("a=%d,b=%d\n",a,b);}



采纳答案:
#include<stdio.h>void f(int& x,int& y){ int t; if(x<y){ t=x; x=y; y=t; }}int main(){ int a=2,b=3; f(a,b); printf("a=%d,b=%d\n",a,b);}

img


改成这样就可以了,&叫引用
如有帮助请采纳一下哦!谢谢!



其他答案2:

值没有传到main里,得改成指针的方法
这是一种方法

#include<stdio.h>void f(int *x,int *y){ int t; if(*x<*y) { t=*x; *x=*y; *y=t; }}int main(){ int a=2,b=3; f(&a,&b); printf("a=%d,b=%d\n",a,b);}

其他答案3:

你把a,b传给了函数中的x,y, x,y的值互换了,但a,b么有互换

版权声明:本文为[CSDN问答]所创,转载请带上原文链接,感谢。 https://ask.csdn.net/questions/7619751