原文:swap:不使用中間變量,交換兩個a、b兩個變量

寫一個swap函數,要求不使用中間變量,交換a b兩個變量的值 ,應該算是老生常談了。但今天卻碰到一點新問題。 今天閱讀 程序員的自我修養 鏈接 裝載與庫 ,P 有一小段示例代碼: 我覺得用一行代碼來實現交換a與b的值,還是很簡潔的。於是順手發給了一個朋友。結果朋友說,這個函數的執行出現了問題。 預期的輸出應為 a: , b: ,使用VC 編譯,輸出符合預期。但使用gcc . . Ubuntu ...

2012-04-16 23:40 9 560 推薦指數:

查看詳情

[轉]不使用中間變量交換兩個數值變量的值

第一類方法也是常用的方法,通過多次的數值計算來完成交換,到現在知道的有下面三種: (1)加減法。 a = a + b; b = a - b; a = a - b; 該方法可以交換整型和浮點型數值的變量,但在處理浮點型的時候有可能出現精度的損失,例如對 ...

Wed Oct 21 16:44:00 CST 2015 0 2968
JavaScript兩個變量交換值(不使用臨時變量

概要 本文主要描述,如何不使用中間值,將兩個變量的值進行交換。  前三種只適用於number類型的數值交換,第四和第五種適合其他類型。 一、普通做法 普通的做法就是聲明多一個臨時變量tmp,進行數據交換過程中的緩存。這樣的做法直觀,易懂。但是,會增加內存的使用。 二、算術運算 ...

Tue Feb 28 06:07:00 CST 2017 0 5104
JAVA交換兩個變量的值-(不使用第三變量

以下方法的根本原理就是: 借助第三個變量 c = a; a = b; b = c; 運算符-不借助第三變量: a = a+b; b = a-b; a = a-b; 為運算符-不借助第三個變量: (此種方法運用這種原理:一個數對另一個數位異或次,該數不變)a = a^b; b ...

Wed Mar 28 00:10:00 CST 2018 1 3853
【Java】不使用第三方變量交換兩個變量的值

在語言學習和進行程序設計的時候,我們交換兩個變量最常使用的方法是借助temp這個新的變量進行轉換,代碼如下: ----------------------------------------- <--標准算法--> ...

Mon Jan 19 07:25:00 CST 2015 2 3211
交換兩個變量的值,不使用第三個變量的四種法方法

通常我們的做法是(尤其是在學習階段):定義一個新的變量,借助它完成交換。代碼如下: 上面的算法最大的缺點就是需要借助一個臨時變量。那么不借助臨時變量可以實現交換嗎?答案是肯定的!這里我們可以用三種算法來實現:1)算術運算;2)指針地址操作;3)位運算;4)棧實現。 1) 算術運算 ...

Wed Oct 15 22:49:00 CST 2014 0 2651
不使用第三個變量交換兩個變量的值

小結一下: 給出兩個變量:var a = 1, b = 2; 方法一: a = a + b; b = a - b; a = a - b; a, b 的值已經交換。 方法二: a = a ^ b; b = a ^ b; a = a ^ b; a, b 的值已經交換 ...

Wed Apr 25 16:53:00 CST 2012 1 3300
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM