最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++面試題之?dāng)?shù)a、b的值互換(不使用中間變量)

 更新時(shí)間:2016年07月04日 11:33:31   作者:rl529014  
這篇文章主要介紹了不使用中間變量,C++實(shí)現(xiàn)數(shù)a、b的值互相轉(zhuǎn)換操作,感興趣的小伙伴們可以參考一下

題目要求:將數(shù)a、b的值進(jìn)行交換,并且不使用任何中間變量。

程序如下:

 #include<stdio.h>

void swapValue1(int &a, int &b) //使用中間變量交換數(shù)據(jù)
{
 int temp = a;
 a = b;
 b = temp;
}

void swapValue2(int &a, int &b)//使用加減運(yùn)算完成數(shù)據(jù)交換
{
 a = a + b;
 b = a - b;
 a = a - b; 
}

void swapValue3(int &a, int &b) //使用位運(yùn)算交換數(shù)據(jù)
{
 a^=b;
 b^=a;
 a^=b;
}
int main()
{
 int a1 = 1, b1 = 2;
 int a2 = 3, b2 = 4;
 int a3 = 5, b3 = 6;
 
 swapValue1(a1, b1);
 swapValue2(a2, b2);
 swapValue3(a3, b3);
 
 printf("a= %d b= %d\n",a1, b1);
 printf("a= %d b= %d\n",a2, b2);
 printf("a= %d b= %d\n",a3, b3);
 
 return 0;
} 

運(yùn)行結(jié)果:

解析:
第一種:使用中間變量來達(dá)到交換數(shù)據(jù)的目的,這是最大眾的方法,當(dāng)然了不滿足本題的要求。 

第二種:
使用簡單的加減操作來達(dá)到交換a、b值得目的。
缺點(diǎn):a+b和a-b時(shí),可能會(huì)到導(dǎo)致數(shù)據(jù)溢出。 

第三種:
采用位運(yùn)算的方法,按位異或運(yùn)算。(建議采用這種方式)
異或運(yùn)算:相同的二進(jìn)制位異或運(yùn)算為0,不相同的二進(jìn)制位異或運(yùn)算為1。 

關(guān)于位運(yùn)算的知識(shí),參考http://www.fzitv.net/article/87880.htm

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

汶上县| 成武县| 丰台区| 蛟河市| 乃东县| 肥乡县| 凤台县| 上林县| 桐梓县| 得荣县| 西充县| 大足县| 广河县| 揭西县| 丹棱县| 垦利县| 招远市| 安图县| 赤峰市| 马关县| 平潭县| 大洼县| 鹤庆县| 吉安县| 铁力市| 丰台区| 上高县| 盈江县| 徐水县| 衡东县| 张家口市| 色达县| 唐海县| 汤原县| 濮阳县| 增城市| 石渠县| 改则县| 曲阳县| 栾城县| 大宁县|