不借助第三个变量,交换两个变量值的3种方式
Posted lizhe-ning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不借助第三个变量,交换两个变量值的3种方式相关的知识,希望对你有一定的参考价值。
今天在我们学校的OJ上做题,一道非常简单的题,突然想试试能不能不借助第三个变量,交换两个变量值。蒙出来一半了已经,好可惜。现在把方法写在这里,希望以后不要忘记。
1 void fun1() 2 { 3 int a = 10, b = 100; 4 5 a = a + b; 6 b = a - b; 7 a = a - b; 8 printf("%d %d ", a, b); 9 } 10 11 void fun2() 12 { 13 int a = 10, b = 100; 14 a = a * b; 15 b = a / b; 16 a = a / b; 17 printf("%d %d ", a, b); 18 } 19 20 void fun3() 21 { 22 int a = 10, b=100; 23 a ^= b;//^异或相同为0,相异为1. 24 b ^= a; 25 a ^= b; 26 printf("%d %d ", a, b); 27 }
感谢网友 https://blog.csdn.net/sinat_29173167/article/details/52904252 的思路。
以上是关于不借助第三个变量,交换两个变量值的3种方式的主要内容,如果未能解决你的问题,请参考以下文章