1樓:鬆睿博
這個是傳值問題!
一般的引數傳值有兩個辦法!
1,就是指標傳值。
void swap(t *x,t *y)
swap(&d1,&d2);
2,是引用傳值
void swap(t &x,t &y)
swap(d1,d2);
2樓:
將void swap(t x,t y)改為void swap(t &x,t &y)
之所以加上&是因為&表示引用,訪問的是地址,都是用作形參,相當於實參中的指標符號*。
3樓:匿名使用者
#include
template
void swap1(t &x,t &y)template
void swap2(t *x,t *y)int main()
4樓:
你這個交換需要在呼叫時帶地址引數,而不能是變數本身void swap(t* x,t* y)
。。。swap(&i1,&i2);
swap(&d1,&d2);
。。。或者
int i1=1,i2=2;
double d1=1.23,d2=2.34;
拿到void swap(t x,t y) 前面,讓它們成為全域性變數搞清楚全域性變數和區域性變數就ok了
c++交換兩個數的值**
5樓:金色潛鳥
猜測,可能是:
swap(&x,&y);這句 呼叫你寫的函式。
swap(x,y);這句 呼叫系統裡的同名函式。
你可以在你寫的函式里加一句 cout << "my function" < 呼叫 swap(x,y); 將不會顯示 "my function"。 呼叫 swap(&x,&y); 會顯示 "my function"。 c++ 允許定義同名而引數不同的函式。swap(x,y); 是引數引用。 main char pt pt str 0 指標p指向motherstr 0 str 1 指標str 0 指向fatherstr 1 pt 指標str 1 指向motherfor i 0,i 2 i printf s n str i 這裡交換成功 這裡str是指標陣列,str 0 str 1 都是指... x 1 x a無解,則有 a 1 畫一個數軸,一看就明白了。1,1 0,1 非負整數為0,1,2,3.又因為原式中a b的絕對值與ab都大於零,所以a,b為0或1,答案就知道了。第一個題,x已經小於1了,如果x又同時大於了1,就肯定是無解的,這個可以做數軸圖來看,所以第一題的答案是 1,無窮 第二個... 設兩個數為x,y,如果兩數的和為a,兩數的差為b,則x a b 2,y a b 2 諾亞金 一個數 和 差 2 另一個數 和 差 2 小茗姐姐 x y a x y b x a b 2 y a b 2 徐州其其格 和差相加去一半,表示大數真簡單 和差相減去一半,表示小數就是它! 用公式一個數 和 差 ...C指標交換問題,c語言的指標交換問題
兩個數學問題,2個數學問題
已知兩個數的和和差,怎麼求兩個數