兩個數的交換

2021-07-23 13:12:45 字數 539 閱讀 1911

一般思路:建立乙個臨時變數,以這個臨時變數為中間變數,利用賦值來完成兩個數的內容的相互交換。

**如下:

#include int main()

優化方案:

1.上述方法中需要另外建立乙個變數,略微有些麻煩,若是要求不能建立臨時變數,則可以採用數學上的加法來進行一些變通。

**如下:

#include int main()

2.上述方案是巧妙的運用了一下加法,除了這種方法,其實可以採用位運算子來進行交換。方法與方案1類似,只不過是運用了一下位運算子中的位異或^。

位異或的大致作用是兩個二進位制數每個位上相同等於0,不同等於1【例如111000與101010的結果就是010010】,而對於一般數的運算【例如a^b^a=b】,也就是說相同數異或相互抵消。而下面這種方案就是通過運用這一原理。

**如下:

#include int main()

交換兩個數

問題 如果要求不使用臨時變數,應該如何交換兩個變數的值?解決這個題的方式有好幾種,第一種當然就是使用系統自帶的swap 函式了。不過,這種抖機靈的做法一般人很難欣賞,而且說不定它內部實現使用了臨時變數也說不定 這是使用臨時變數的做法,也是我們在c語言中常用的做法 func swap1 a inout...

Qt C 交換兩個數

在程式設計過程中,交換兩個數是我用常用的 這裡做下簡單的搬運 bool widget swap int a,int b 這種方式其實是沒有改變的ab兩個引數的值的,只有在函式裡面,ab的值是改變的,但是在函式外面,ab的值還是沒有改變的 bool widget swap point int a,in...

交換兩個數的方法

示例 如下 1 include 2 using namespace std 34 5 指標法 中間變數1 6 7void swap1 int pa,int pb 813 14 15 引用法 中間變數2 16 17void swap2 int ra,int rb 1823 24 25 相互加減法 26...