多種方法交換兩個數的值

2021-10-14 15:21:11 字數 764 閱讀 1268

方法1

程式例項:

#include

void

exchange

(int x,

int y)

intmain()

執行結果:

方法2:

#include

intmain()

執行結果;

此處通過巧用位操作符:^(按位異或)的方法,完成兩個數的轉化。

按位異或操作符的口訣:相異為1,相同為0;

三個按位異或的具體如下:

注:以下二進位制位為簡寫

a=3的二進位制位: 011

b=5的二進位制位: 101

第乙個: a=a^b= 110=6;

第二個: b=a^b= 011=3;

第三個:a=a^b= 101=5;

就是通過這三次簡單的操作符,無需借外人之力,就可完成自身轉換;在那麼一瞬間讓我想起了,孔明先生的草船借箭。據說這種方法還出過面試題呢,第一種其實更方便,第二種其實更奧妙;學習的魅力就是,你在前行的路上不斷能發現新的看法和觀點,點點獲得就讓人些許高興起來,這種感覺很奇妙,但我想享有。晚安啦!2021/1/12

交換兩個變數的值(多種方法)

通常,在剛學習的階段,我們的做法是引入乙個新的變數,借助它來完成兩個變數的交換。就像把兩杯水交換一樣,要再買乙個杯子 才能完成交換。這種演算法易於理解,特別適合幫助初學者了解電腦程式的特點,是賦值語句的經典應用。在實際軟體開發當中,此演算法簡單明瞭,不會產生歧義,便於程式設計師之間的交流,一般情況下...

c語言 多種方法實現兩個數的交換

交換兩個數的內容是c語言中常見的問題,所以在此總結一下我所學到的幾種方法。首先,舉乙個例子,假設a 10,b 20.第一種方法,借助乙個臨時變數來進行儲存,這是最容易也是最直觀的方法。如下 int a,b,t a 10 b 20 printf a d b d a,b t a a b b t prin...

兩個變數的值交換的多種方法

一文中談到過將兩個變數的值進行交換的 swap 函式實現,它們分別是通過指標和引用並使用中間變數來實現的,這裡再把 貼一下。void swap int x,int y void swap int x,int y 當然上面兩種方法是很好也是很好理解很容易想到的方法,下面再介紹兩種不需要使用中間變數的方...