交換兩個int變數,不使用第三個變數c語言

2021-10-16 17:01:09 字數 687 閱讀 4949

一般來說交換兩個變數,會用到第三個變數暫存待交換的兩變數中的乙個

常規方法如下:

#include

intmain()

得到輸出結果如下

下面介紹另外兩種不需要第三個變數的方法

第一種:先用a存放a與b的和

#include

intmain()

執行後如下

但是這種方法存在溢位的問題,若要解決這個問題,下面給出只使用兩個變數交換變數的第二種方法

方法二:用異或的方法(「是否不同」,是不同為1,不是不同為0)

#include

intmain()

執行結果正確,下面用二進位制分析該演算法是否正確

對於第二種異或的方法其實沒懂,等我懂了再來寫(っ•̀ω•́)っ✎⁾⁾ 我愛學習

交換兩個變數的值,不使用第三個變數

通常我們的做法是 尤其是在學習階段 定義乙個新的變數,借助它完成交換。如下 int a,b a 10 b 15 int t t a a b b t 這種演算法易於理解,特別適合幫助初學者了解電腦程式的特點,是賦值語句的經典應用。在實際軟體開發當中,此演算法簡單明瞭,不會產生歧義,便於程式設計師之間的...

不使用第三個變數交換兩個數值。

上班時間,閒來無事,寫個小演算法消遣下。題目來自某.net面試題集錦。相信很多看官也耳熟能詳。也頗為簡單,不會者學,會者繞道。題目如下 不用第三個變數,交換兩個數值。心得 1.時刻注意現在的i,j是最原始的i,j的什麼組合。2.out 原來必須要初始化才能用地。class program j i,j...

Java不使用第三個變數交換兩個變數的資料

變數 儲存資料的空間 資料 文字和符號的表示 資料的分類 數字 byte short int long float double 非數字 char boolean author siggy public class vardemo 第一種加減法,當a或b為int型別的最大值時會越界,產生bug 第二...