這個互換值的方法為什麼不成功?

CSDN問答 2021-12-30 10:42:55 阅读数:777

方法 不成功 成功
#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://primo.wiki/2021/12/202112300106210536.html