您的位置:首页 > 其它

不使用中间变量实现变量交换

2015-07-13 17:27 211 查看
#include <stdio.h>
#include <stdlib.h>
void main()
{
//way1:使用中间变量
int a = 10;
int b = 20;
printf("交换之前:a=%d b=%d\n", a, b);
int temp;
temp = a;
a = b;
b = temp;
printf("使用way1交换之后:a=%d b=%d\n", a, b);
//way2:不使用中间变量
a = a+b;
b = a-b;
a = a-b;
printf("使用way2交换之后:a=%d b=%d\n", a, b);
//way3:不使用中间变量,异或运算
a = a^b;
b = a^b;
a = a^b;
printf("使用way3交换之后:a=%d b=%d\n", a, b);
}


注:异或规则:相同为0,不同为1

由此得到任何数与0异或都是其本身,保持不变。

另外异或满足交换律。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: