C++與演算法

解答

作法一 - 多宣告2個變數暫存

  可以先多宣告兩個變數暫存原來兩個數的資料,再進行交換。

#include<iostream>
using namespace std;

int main()
{
    int numA = 60;
    int numB = 80;
    int tmpA;
    int tmpB;

    tmpA = numA;
    tmpB = numB;

    numA = tmpB;
    numB = tmpA;

    cout << numA << " " << numB << endl;

    return 0;
}

output

80 60

自我思考

  能不能只多宣告一個變數,就能交換原來的兩個變數?想好請往下拉。

作法二 - 多宣告1個變數暫存

  只需要多一個變數暫存原來的資料。

#include<iostream>
using namespace std;

int main()
{
    int numA = 60;
    int numB = 80;
    int tmp;

    tmp = numA;
    numA = numB;
    numB = tmp;

    cout << numA << " " << numB << endl;

    return 0;
}

output

80 60

執行過程

時間點 numA儲存值 numB儲存值 tmp儲存值
一開始 60 80 ?
tmp = numA; 執行後 60 80 60
numA = numB; 執行後 80 80 60
numB = tmp; 執行後 80 60 60