题目要求:将数a、b的值进行交换,并且不使用任何中间变量。
程序如下:
#include
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)
不使用其他变量交换两个整型的值:
#include
void main(){
int a = 3;
int b = 4;
a = a ^ b;//使用异或交换
b = b ^ a;
a = a ^ b;
printf(%d, %d\n, a, b);
a = a - b;//使用加减交换
b = a + b;
a = b - a;
printf(%d, %d\n, a, b);
a ^= b ^= a ^= b;
printf(