您的位置:首页 > 其它

如何不使用任何中间变量交换两个变量的值

2014-03-05 13:37 218 查看
1, 加减法
int a =
0, b = 0;

scanf("%d,%d",&a,&b);

a = a + b;
b = a - b;
a = a - b;

printf("%d,%d\n",a,b);

2, 乘除法

int a = 0, b = 0;

scanf("%d,%d",&a,&b);

a = a * b;
b = a / b;
a = a / b;
printf("%d,%d\n",a,b);
//此区别在于这里的 b 不可以为0

3, 异或法

int a = 0, b =
0;

scanf("%d,%d",&a,&b);

a ^= b; //a1 = a ^ b;
b ^= a; //b1 = b ^ a1 = b ^ (a ^ b) = b ^ a ^ b = a;
a ^= b; //a2 = a1 ^ b1 = a ^ b ^ a = b;

printf("a = %d,b = %d\n",a,b);

//应用的主要原理是:一个值经过同一个数的两次异或后值不变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐