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

首頁 > 編程 > C++ > 正文

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

2020-05-23 14:02:18
字體:
來源:轉載
供稿:網(wǎng)友

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

程序如下:

 #include<stdio.h>void swapValue1(int &a, int &b) //使用中間變量交換數(shù)據(jù){ int temp = a; a = b; b = temp;}void swapValue2(int &a, int &b)//使用加減運算完成數(shù)據(jù)交換{ a = a + b; b = a - b; a = a - b; }void swapValue3(int &a, int &b) //使用位運算交換數(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;} 

運行結果:

C++數(shù)值交換,C++兩數(shù)值交換,C++數(shù)值ab互換

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 资中县| 钟山县| 密山市| 宁海县| 松阳县| 萝北县| 阳高县| 江山市| 清镇市| 承德市| 大连市| 通化市| 盐城市| 和林格尔县| 东丰县| 榆林市| 苍梧县| 定州市| 中江县| 枞阳县| 开原市| 锡林郭勒盟| 达日县| 义马市| 江口县| 开江县| 固安县| 克山县| 方城县| 福安市| 湖州市| 苍南县| 巴彦淖尔市| 三河市| 祁连县| 麻城市| 抚宁县| 松溪县| 大石桥市| 利辛县| 利辛县|