C語言中交換兩個數的方法總結

2022-07-20 12:06:11 字數 725 閱讀 8949

temp = a;

a = b;

b = temp;

這種方法實際上就是先把a+b的結果暫時先儲存在變數a中,然後通過這改變後的a和原始的b進行減法就可以得到交換後的b,但是這種方法有乙個缺陷,就是a和b都是int型別,a+b的結果可以越界。

a = a + b;

b = a - b;

a = a - b;

這種方法和方法2類似,只是用a*b代替a+b放在a中暫存,後面思路一樣,這種方法有著和方法2一樣的缺陷,就是越界問題,而且更加容易越界。

a = a * b;

b = a / b;

a = a / b;

這種方法不存在之前越界的缺陷,是一種很完美的方法,這種方法主要利用了異或的特性ab的值先儲存到a,因為ab^b=a所以可以順利完成交換。

a = a ^ b;

b = a ^ b;

a = a ^ b;

把原來的int型別的a,把a的值拆分成高16位和低16位,相當於多了16位的暫存空間可以周轉,但是此方法的缺陷也顯而易見,就是如果被賦值的a或者b超過了16位,這種方法就會發生錯誤。

a <<= 16;

a |= b;

b = a >> 16;

a = a & 0xffff;

C語言中交換兩個數的5種方法

程式中有兩個數a,b,其中a 4,b 5,現在希望交換兩個數的值,使得a 5,b 4.使用乙個臨時變數來進行儲存 temp a a b b temp 使用加減法來進行交換,這種方法實際上就是先把a b的結果暫時先儲存在變數a中,然後通過這改變後的a和原始的b進行減法就可以得到交換後的b,但是這種方法...

C語言中用不同的方法交換兩個數的值

在開始學習c語言的過程中,我們一定都做過這樣一道題,交換兩個數的值。可能大部分人都會這道題,但今天我想試試用不同的方法做這道題。1 建立臨時變數 include intmain 運算結果如下所示 2 在不建立臨時變數的情況下交換兩個數的值 include intmain 運算結果如下 3 還是在不建...

交換兩個數的方法

示例 如下 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...