2012-03-06 57 views
-3

可能重複:
Swap the values of two variables without using third variable交換兩個變量,而無需使用第三個變量作爲中介位置

寫一個程序,交換兩個變量,而無需使用第三可變作爲中介 位置。

a=2; b=3; 
a=a*b; // 6 
b=a/b; // 2 
a=a/b; // 3 
a=3 and b=2 

????這是真的,,,我對此非常

+0

作業?你可以看一下在網絡上的解決方案。經典的一個使用XOR。 – 2012-03-06 09:13:29

+0

你可以對你的問題/錯誤有更詳細的瞭解嗎? – Cameron 2012-03-06 09:14:36

+0

你將遇到0值問題 – xitx 2012-03-06 09:14:39

回答

0

錯誤,如果B或A是零,會發生什麼?如果兩者都不爲零,並且您沒有得到該類型的溢出,那麼您的代碼將起作用。

0

更好地使用沒有「奇點」的可逆運算符。如+-(假設整數的wraparounds都ok。

,當然,獲勝者是XOR。

a ^= b; 
b ^= a; 
a ^= b; 
相關問題