一般情況下我們都會建立乙個中間變數進行倆個數值的交換:
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...