国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

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

2020-01-26 14:31:51
字體:
供稿:網(wǎng)友

題目要求:將數(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)然了不滿足本題的要求。 

第二種:
使用簡(jiǎn)單的加減操作來達(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í),參考//m.survivalescaperooms.com/article/87880.htm

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新营市| 徐汇区| 丹棱县| 奉节县| 龙州县| 田阳县| 平顺县| 铁岭市| 盘锦市| 金沙县| 土默特左旗| 额尔古纳市| 丰县| 筠连县| 婺源县| 崇义县| 都江堰市| 永靖县| 宁强县| 勐海县| 江永县| 桐城市| 任丘市| 陈巴尔虎旗| 富阳市| 关岭| 泊头市| 卫辉市| 阿勒泰市| 新兴县| 五寨县| 平顶山市| 道真| 广西| 宿迁市| 房山区| 南投县| 弥渡县| 烟台市| 顺义区| 寿宁县|