C++面试题之数a、b的值互换(不使用中间变量)
发布时间:2020-12-16 05:23:26 所属栏目:百科 来源:网络整理
导读:题目要求:将数a、b的值进行交换,并且不使用任何中间变量。 程序如下: #includestdio.hvoid swapValue1(int b) //使用中间变量交换数据{ int temp = a; a = b; b = temp;}void swapValue2(int b)//使用加减运算完成数据交换{ a = a + b; b = a - b; a = a
题目要求:将数a、b的值进行交换,并且不使用任何中间变量。 程序如下: #include<stdio.h> void swapValue1(int &a,int &b) //使用中间变量交换数据 { int temp = a; a = b; b = temp; } void swapValue2(int &a,int &b)//使用加减运算完成数据交换 { a = a + b; b = a - b; a = a - b; } void swapValue3(int &a,int &b) //使用位运算交换数据 { 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= %dn",a1,b1); printf("a= %d b= %dn",a2,b2); printf("a= %d b= %dn",a3,b3); return 0; } 运行结果: 解析: 第二种: 第三种: 关于位运算的知识,参考https://www.oudahe.com/p/31964/ 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |