不建立臨時變數,交換兩個數的內容

2021-09-12 23:12:27 字數 558 閱讀 6211

不建立臨時變數,交換兩個數的內容

方法一(加減法):

#define _crt_secure_no_warnings

#include int main()

程式設計思路:

首先從鍵盤鍵入兩個整數;

其次是交換兩個數的內容;(不採用中間變數,我們可以選擇加減法,首先把a+b的值賦給a,再把新的a減掉b,即實現b的值變為a,最後用新的a減去新的b(即a+b-a)則a的值變為b)

最後輸出交換後的結果。

方法二(乘除法):

#define _crt_secure_no_warnings

#include int main()

程式設計思路:

首先從鍵盤鍵入兩個整數;

其次是交換兩個數的內容;(不採用中間變數,我們可以選擇乘除法,首先把ab的值賦給a,再把新的a除以b,即實現b的值變為a,最後用新的a除以新的b(即ab/a)則a的值變為b)

最後輸出交換後的結果。

注意:此時有一條限制,b!=0。

不建立臨時變數,交換兩個數的值

交換兩個數的值是一道很基本的題,通常我們都會建立乙個臨時變數來進行兩個數值的交換。但是現在,我們不建立臨時變數去將兩個數的值進行交換。這裡我們要用到二進位制相關知識 按位與 按位或 按位異或 取反 左移 右移 以上是二進位制裡面的一些操作,不過我們重點來說 在這裡的作用 按位異或 兩數對應的二進位制...

如何不建立臨時變數,交換兩個數的內容

一 程式內容 c語言中,一般可以使用建立臨時變數的方式,交換兩個數字,但是使用其他的方法,我們可以鍛鍊演算法思維,更好地理解 本次用到了三種方法,按位異或的方法是最完美的。二 程式要點 1 利用加法實現功能,原理是先把數字合併起來賦值給其中乙個數字,然後分別按順序減去兩個數字。容易導致資料溢位,並不...

不用臨時變數交換兩個數的值

就地交換兩個數是比較經典而且基礎的演算法之一。我們要交換兩個數字,通常的做法就建立乙個中間變數,然後進行迴圈賦值,比如說下面的 void switch int p1,int p2 這種做法是最常見的一種交換兩個數字的方法,但研究演算法的人總是會提出比較詭異的問題,比如說在手持裝置中,記憶體資源很寶貴...