- 给定两个整形变量的值,将两个值的内容进行交换。
- 不允许创建临时变量,交换两个数的内容(附加题)
首先看这个题目有两种问法,自然就有至少两种答案。
第一种我是创建了一个临时变量把他们相互赋值得到的如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
int a = 10;
int b = 20;
int c;
c = a;
a = b;
b = c;
printf(“a = %d\n”, a);
printf(“b = %d\n”, b);
system(“pause”);
return 0;
}
第二种顺着第一种的思路但不能创建临时变量,C语言里面 = 是赋值的意思,即可以把他们的和差相互赋值得到:
#include <stdio.h>
#include <stdlib.h>
int main() {
int a = 10;
int b = 20;
a = a + b;
b = a - b;
a = a - b;
printf(“a = %d\n”, a);
printf(“b = %d\n”, b);
system(“pause”);
return 0;
}
当然当我学了位运算符我发现还可以这样用“^”表示异或运算(二进制相同为0,不同为1)则:
#include <stdio.h>
#include <stdlib.h>
int main() {
int a = 10;
int b = 20;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf(“a = %d\n”, a);
printf(“b = %d\n”, b);
system(“pause”);
return 0;
}
肯定还有别的方法!