C 中交換兩個數的值

2021-08-19 03:39:06 字數 806 閱讀 2892

一般情況下我們都會建立乙個中間變數進行倆個數值的交換:

int a, b, temp;

a = 10;

b = 5;

temp = a;

a = b;

b = temp;

這是一種基礎的演算法,符合計算機的程式語言特點,是賦值語句的經典。

還有一種比較簡單理解的實現方式通過「+」,「-」運算子實現的:

int a, b;

a = 10;

b = 2;

a = b - a;//a=-8,b=10

b = b - a;//a=-8,b=10

a = b + a;//a=2,b=10 交換成功

我看網上有個博主解釋原理解釋的比較好。把a,b看做是數軸上的倆個點,圍繞兩點間的距離進行計算,具體過程如下:a=b-a,先求出來ab倆點之間的距離,並將結果儲存到a中,b=b-a;求出a到原點的距離,並將結果儲存到b中;a=b+a;求出b到原點的距離,並將結果儲存到a中,這樣就交換了ab倆個數的值。

還有一種是通過2進製實現的,異或:

int a, b;

a = 20; b = 2;

a = a ^ b;//a=10100,b=0010,兩者相異或的結果是10110,並儲存在a中。

b = a ^ b;//a=10110,b=0010,兩者相異或的結果是10100,並儲存在b中,換成二進位制是20

a = a ^ b;//a=10110,b=10100,兩者相異或的結果是00010,儲存在a中,換成十進位制是2

C 交換兩個數的值

需要臨時變數 1 使用引用 引用即別名 void swap1 int a,int b 函式時的格式 swap1 x,y 2 指標 void swap2 int a,int b 呼叫該函式時的格式 swap2 x,y 2.不需要臨時變數 1 假如 a 3,b 4。想將a和b的值互換,可以用一下賦值語句...

交換兩個數的值

include iostream.h 解法二 include iostream.h void swap int x,int y void swap int x,int y void main void main 請同學們想一下,哪乙個能實現數值交換!我來告訴大家,解法可以實現這個功能!解法一 他把a...

C語言 交換兩個數的值

方法一 通過臨時變數將兩個數的內容進行交換 include include pragma warning disable 4996 void swap intmain 方法二 不允許建立臨時變數,將兩個數的內容進行交換 include include pragma warning disable 4...