交换两个数字的程序

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

交换两个数字意味着互换它们的值。在这个实验中,我们将学习如何在 C 语言中使用不同的方法来交换两个数字,例如使用临时变量、加减法、位运算符、乘除法。

注意:你需要自己创建文件 ~/project/main.c 来练习编码,并学习如何使用 gcc 编译和运行它。

cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("`C`")) -.-> c/BasicsGroup(["`Basics`"]) c(("`C`")) -.-> c/UserInteractionGroup(["`User Interaction`"]) c/BasicsGroup -.-> c/variables("`Variables`") c/BasicsGroup -.-> c/operators("`Operators`") c/UserInteractionGroup -.-> c/output("`Output`") subgraph Lab Skills c/variables -.-> lab-123348{{"`交换两个数字的程序`"}} c/operators -.-> lab-123348{{"`交换两个数字的程序`"}} c/output -.-> lab-123348{{"`交换两个数字的程序`"}} end

使用临时变量交换

我们可以通过以下步骤使用临时变量交换两个数字:

  1. 声明三个变量 xytemp
  2. xy 赋值。
  3. x 的值存储到 temp 中。
  4. y 的值赋给 x
  5. temp 的值赋给 y
  6. 打印 xy 的值。
#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;
}

使用加减法交换

我们可以通过以下步骤使用加减法交换两个数字:

  1. xy 赋值。
  2. xy 相加,并将结果赋给 x
  3. x 中减去 y 的原始值,并将结果赋给 y
  4. x 的新值中减去 y 的原始值,并将结果赋给 x
  5. 打印 xy 的值。
#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;
}

使用位运算符交换

我们可以通过以下步骤使用位运算符交换两个数字:

  1. xy 赋值。
  2. xy 进行 XOR 操作,并将结果赋给 x
  3. x 的新值和 y 进行 XOR 操作,并将结果赋给 y
  4. x 的新值和 y 进行 XOR 操作,并将结果赋给 x
  5. 打印 xy 的值。
#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;
}

使用乘除法交换

我们可以通过以下步骤使用乘除法交换两个数字:

  1. xy 赋值。
  2. xy 相乘,并将结果赋给 x
  3. x 的新值除以 y,并将结果赋给 y
  4. x 的新值除以 y 的新值,并将结果赋给 x
  5. 打印 xy 的值。
#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;
}

总结

在这个实验中,我们学习了如何使用四种不同的方法交换两个数字:使用临时变量、加减法、位运算符以及乘除法。交换两个数字在编程中非常有用,尤其是在我们需要改变两个值的顺序或执行需要交换两个变量值的操作时。

您可能感兴趣的其他 C 教程