阿摩線上測驗 登入

申論題資訊

試卷:94年 - 94 關務特種考試_四等_資訊處理:程式語言概要#34395
科目:程式語言
年份:94年
排序:0

申論題內容

五、對上題,試寫出不用 temp 變數的程式,來使得兩變數 x 及 y 的數值互換。(20 分)

詳解 (共 1 筆)

詳解 提供者:s1121ks011 s1121ks011
可以使用算術運算符(加法和減法)或者位運算來實現不使用臨時變量的方式交換兩個變量的值。下面是使用算術運算符的方法:
在C/C++中:
```cpp
int x, y;
// x和y的值已在此設定好了
// 將x和y的值互換
x = x + y;
y = x - y;
x = x - y;
// x和y的值已經交換
```
在Java中:
```java
int x, y;
// x和y的值已在此設定好了
// 將x和y的值互換
x = x + y;
y = x - y;
x = x - y;
// x和y的值已經交換
```
這段程式碼的原理是利用加法和減法的性質:
1. 將x和y的和賦給x,即x = x + y。
2. 將x的新值減去原始的y的值,即y = x - y,此時y的值已經變為原始的x的值。
3. 將新的x的值減去原始的y的值(即現在的x的值減去原始的y的值,即現在的x的值已經是原始的x和y的和),即x = x - y,此時x的值已經變為原始的y的值。
這樣就完成了x和y的值的互換,而且沒有使用臨時變量。