介绍
交换两个数字意味着互换它们的值。在这个实验中,我们将学习如何在 C 语言中使用不同的方法来交换两个数字,例如使用临时变量、加减法、位运算符、乘除法。
注意:你需要自己创建文件
~/project/main.c来练习编码,并学习如何使用 gcc 编译和运行它。
cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main
使用临时变量
我们可以通过以下步骤使用临时变量交换两个数字:
- 声明三个变量
x、y和temp。 - 为
x和y赋值。 - 将
x的值存储到temp中。 - 将
y的值赋给x。 - 将
temp的值赋给y。 - 打印
x和y的值。
#include <stdio.h>
int main() {
int x = 5, y = 7, temp;
// Step 3
temp = x;
// Step 4 and 5
x = y;
y = temp;
// Step 6
printf("After swapping, x = %d and y = %d\n", x, y);
return 0;
}
使用加减法
我们可以通过以下步骤使用加减法交换两个数字:
- 为
x和y赋值。 - 将
x和y相加,并将结果赋给x。 - 从
x中减去y的原始值,并将结果赋给y。 - 从
x的新值中减去y的原始值,并将结果赋给x。 - 打印
x和y的值。
#include <stdio.h>
int main() {
int x = 5, y = 7;
// Step 2 and 3
x = x + y;
y = x - y;
// Step 4
x = x - y;
// Step 5
printf("After swapping, x = %d and y = %d\n", x, y);
return 0;
}
使用位运算符
我们可以通过以下步骤使用位运算符交换两个数字:
- 为
x和y赋值。 - 对
x和y进行 XOR 操作,并将结果赋给x。 - 对
x的新值和y进行 XOR 操作,并将结果赋给y。 - 对
x的新值和y进行 XOR 操作,并将结果赋给x。 - 打印
x和y的值。
#include <stdio.h>
int main() {
int x = 5, y = 7;
// Step 2 and 3
x = x ^ y;
y = x ^ y;
// Step 4
x = x ^ y;
// Step 5
printf("After swapping, x = %d and y = %d\n", x, y);
return 0;
}
使用乘除法
我们可以通过以下步骤使用乘除法交换两个数字:
- 为
x和y赋值。 - 将
x和y相乘,并将结果赋给x。 - 将
x的新值除以y,并将结果赋给y。 - 将
x的新值除以y的新值,并将结果赋给x。 - 打印
x和y的值。
#include <stdio.h>
int main() {
int x = 5, y = 7;
// Step 2 and 3
x = x * y;
y = x / y;
// Step 4
x = x / y;
// Step 5
printf("After swapping, x = %d and y = %d\n", x, y);
return 0;
}
总结
在这个实验中,我们学习了如何使用四种不同的方法交换两个数字:使用临时变量、加减法、位运算符以及乘除法。交换两个数字在编程中非常有用,尤其是在我们需要改变两个值的顺序或执行需要交换两个变量值的操作时。



