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