# 兩數交換教學 ## 1. 這是什麼阿??? 兩數交換是交換兩個變數的值,這在程式設計中經常出現,特別是在排序演算法等場合。C++ 提供了幾種方法來實現兩數交換,下面我們會介紹兩種基礎的方法。 ## 2. 交換的基本方法 ### 2.1 使用空變數交換 最基本且直觀的方法是使用一個臨時變數來保存其中一個數值,然後進行交換。 ```cpp= #include <iostream> using namespace std; int main() { int a = 10, b = 5, t = 0; cout << "兩個整數交換" << endl; // 使用臨時變數交換 t = a; // t = 10 a = b; // a = 5 b = t; // b = 10 // 顯示交換後的結果 cout << "交換後: a = " << a << ", b = " << b << endl; return 0; } ``` #### **步驟解釋:** 1. 使用 `cin` 讀取兩個整數 `a` 和 `b`。 2. 使用臨時變數 `t` 保存 `a` 的值。 3. 將 `b` 的值賦給 `a`,再將 `t` 的值(原來的 `a`)塞給 `b`。 4. 輸出交換後的結果。 ### 2.2 使用加減法交換 這是一個不需要額外變數的方法,利用加法和減法來達成交換。 ```cpp= #include <iostream> using namespace std; int main() { int a = 10, b = 5; // 使用加減法交換 a = a + b; // a = 15 b = a - b; // b = 15 - 5 = 10 a = a - b; // a = 15 - 10 = 5 // 顯示交換後的結果 cout << "交換後: a = " << a << ", b = " << b << endl; return 0; } ``` #### **步驟解釋:** 1. 首先,將 `a + b` 賦給 `a`。 2. 用 `a - b` 更新 `b`。 3. 最後,通過 `a - b` 更新 `a`。 **注意:** 這個方法會有**溢位**的風險,當 `a` 和 `b` 的數值非常**大**時可能會出現問題。 ## 其實還有一個方法,但是現在我不想說XDDD,之後在位元運算應該會出現喔!!