溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言如何輕松搞定變量值交換

發(fā)布時間:2020-12-02 10:11:07 來源:億速云 閱讀:141 作者:小新 欄目:編程語言

小編給大家分享一下C語言如何輕松搞定變量值交換,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

1.臨時變量法

方法解釋:采用臨時變量的方法,作為中間過渡,這是最簡單也是大家最容易想到的方法,此法在各種場合應用極多,應該熟練掌握。

#include<stdio.h>
int main(void){
     int a=1,b=2,tmp;     
     tmp =a;     
     a=b;     
     b=tmp;     
    printf("%d %d",a,b);
     return 0; 
}

2.加減交換法

方法解釋:顧名思義,使用數(shù)學中的加減法進行交換,先把a+b的結果暫時先保存在變量a中,然后通過這改變后的a和原始的b進行減法就可以得到交換后的b,缺點是a+b的結果可能越界。

#include<stdio.h>
int main(void){     
       int a=1,b=2;
     a = a + b;
     b = a - b;
     a = a - b;     
     printf("%d %d",a,b);     
     return 0;
 }

3.乘除交換法

方法解釋:該方法與加減法類似,就是把加減替換為乘除,缺點是因為采用了乘法,因此比加法更容易越界,使用時應謹慎。

#include<stdio.h>
int main(void){     
       int a=1,b=2;
     a = a * b;
     b = a / b;
     a = a / b;     
     printf("%d %d",a,b);     
     return 0;
 }

4.異或交換法

方法解釋:巧妙使用異或運算來進行交換,這種方法主要利用了異或的特性a^b的值先保存到a,因為a^b^b=a所以可以順利完成交換,這種方法是很完美的,不存在越界的問題。

#include<stdio.h>
int main(void){    
 int a=1,b=2;     
 a = a ^ b;     
 b = a ^ b;     
 a = a ^ b;    
 printf("%d %d",a,b);    
 return 0; }

5.移位交換法

方法解釋:這種方法不太常用,原理是把原來的int類型的a的值拆分成高16位和低16位,相當于多了16位的暫存空間可以周轉(zhuǎn),缺點是如果a或者b超過了16位,這種方法就會出錯,此方法較復雜且容易出錯,因此不建議大家使用。

#include<stdio.h>
int main(void){     
int a=1,b=2;
     a <<= 16;
     a |= b;
     b = a >> 16;
     a = a & 0xffff;     
     printf("%d %d",a,b);     
     return 0;
 }

看完了這篇文章,相信你對C語言如何輕松搞定變量值交換有了一定的了解,想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI