不使用中間變數實現兩個變數的交換

2021-06-13 11:32:10 字數 381 閱讀 9798

在實現程式功能時,我們經常要進行變數數值的交換,最近學習到在c語言中不用定義新變數來實現兩個變數數值的交換的方法,跟大家分享一下!下面是演算法的實現**:

#include

int main()

程式可能有點難理解。在順序結構程式中,程式一條一條的依次執行。為了避免值和變數名的混淆,假定使用者輸入的是a0和b0,因此,scanf語句執行完後a=a0,b=b0。

執行完a=a+b後:a=a0+b0,b=b0;

執行完b=b-a後:a=a0+b0,b=a0;

執行完a=b-a後:a=b0,b=a0;交換完成

但是這種方法的適用範圍很窄,只有定義了加減法的資料型別才能這麼做。

我們可以多去學習類似的演算法,可以增強自己對**的閱讀能力!

互換兩個變數,不使用中間變數

第一種方法 a a b b a b a a b 如下 cpp view plain copy include stdio.h int main void 缺點 可能越界 第二種方法 解決方法 a b異或的結果 和a異或得b 和b異或得a a a b b a b a a b 如下 cpp view p...

不使用中間變數交換兩個變數的值詳解

交換兩個int型別數字的值,最簡單的方式就是使用乙個臨時變數 public static void swap1 int a,int i,int j 如果不使用臨時變數,我們也可以交換 public static void swap2 int a,int i,int j 注意異或運算子有這樣乙個規律 ...

不使用中間變數交換兩個數

在交換兩個數的值時,最經常使用的方法是借助於乙個中間變數來進行交換。temp a a b b temp 通過巧妙的加法與減法運算來實現兩個數的交換。a a b b a b a a b 使用位運算 異或 來交換兩個數。a a b b a b a a b 其正確性是因為異或運算滿足 交換律和 結合律。證...