C語言交換兩個變數值(無需第三個參數)示例

在很多情況下,程式員需要交換兩個變數的值。 在這裏,我們將學習如何交換兩個整數變數的值,這可以交換任何類型的值。 變數之間的值可以通過兩種方式進行交換:

  1. 借助第三個(temp)變數
  2. 不使用任何臨時變數

我們已經學會了第一種方法。 這裏將學習第二種方法。雖然它看起來像一個魔法,但它只是一個小技巧。 想像一下,現在我們有兩個數字12分別存儲在變數ab中 -

如果相加變數ab,即(1 + 2)並存儲到a,則a將變為3b仍然為2
現在從a(3)的新值中減去b(2),並將其存儲到b,那麼a仍然是3b變成1

注意:變數a現在的值是:1

現在,我們從3中減去b的具有新值1,並將其存儲到b(a = 3 - 1),然後變數a的值變成2。最後得出結論 - 兩個變數的值被交換。

偌實現

C語言實現上述演算法應該是這樣的 -

#include <stdio.h>

int main() {
   int a, b;

   a = 11;
   b = 99;

   printf("Values before swapping - \n a = %d, b = %d \n\n", a, b);

   a = a + b;  // ( 11 + 99 = 110)
   b = a - b;  // ( 110 - 99 = 11)
   a = a - b;  // ( 110 - 11 = 99)

   printf("Values after swapping - \n a = %d, b = %d \n", a, b);
}

執行上面示例代碼,得到以下結果 -

Values before swapping -
 a = 11, b = 99

Values after swapping -
 a = 99, b = 11

上一篇: C語言比較三個整數示例 下一篇: C語言迴圈示例