在很多情況下,程式員需要交換兩個變數的值。 在這裏,我們將學習如何交換兩個整數變數的值,這可以交換任何類型的值。 變數之間的值可以通過兩種方式進行交換:
- 借助第三個(temp)變數
- 不使用任何臨時變數
我們已經學會了第一種方法。 這裏將學習第二種方法。雖然它看起來像一個魔法,但它只是一個小技巧。 想像一下,現在我們有兩個數字1
和2
分別存儲在變數a
和b
中 -
如果相加變數a
和b
,即(1 + 2)
並存儲到a
,則a
將變為3
,b
仍然為2
。
現在從a(3)
的新值中減去b(2)
,並將其存儲到b
,那麼a
仍然是3
,b
變成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語言迴圈示例