交换两个数的值,是编程类型最简单的题目之一,可以创建一个变量,作为两个数交换的桥梁,具体如下:
#includeint main() { int a = 0; int b = 0; int n = 0; printf("请输入两个数:"); scanf("%d %d", &a, &b); n = a; a = b; b = n; printf("%d %d", a, b); return 0; }
这是一道最基本的题,通常情况下,我们第一时间想到的就是这种方法。但是,现在不能创建临时变量,其实也有很多方法,这种举出两个例子。
第一个方法的思路是可以利用加法给一个数赋上新的值,代码如下
#includeint main() { int a = 2; int b = 3; a = a + b; b = a - b; a = a - b; printf("%d %d", a, b); return 0; }
其次,第二种方法并不容易想到,但是也是对二进制和操作符是否熟练的练习
#includeint main() { int a = 2; int b = 3; a = a ^ b; b = a ^ b; a = a ^ b; printf("%d %d", a, b); return 0; }
这种是利用异或来解决,意思是对应二进制位相同为0,相异为1,可以把二进制分别写出来更容易理解了



