原文: https://www.programiz.com/c-programming/examples/swapping

在此示例中,您将学习使用两种不同的技术在 C 编程中交换两个数字。

要理解此示例,您应该了解以下 C 编程主题:


使用临时变量交换数字

  1. #include<stdio.h>
  2. int main() {
  3. double first, second, temp;
  4. printf("Enter first number: ");
  5. scanf("%lf", &first);
  6. printf("Enter second number: ");
  7. scanf("%lf", &second);
  8. // Value of first is assigned to temp
  9. temp = first;
  10. // Value of second is assigned to first
  11. first = second;
  12. // Value of temp (initial value of first) is assigned to second
  13. second = temp;
  14. printf("\nAfter swapping, firstNumber = %.2lf\n", first);
  15. printf("After swapping, secondNumber = %.2lf", second);
  16. return 0;
  17. }

输出

  1. Enter first number: 1.20
  2. Enter second number: 2.45
  3. After swapping, firstNumber = 2.45
  4. After swapping, secondNumber = 1.20

在上述程序中,为temp变量分配了first变量的值。

然后,将second变量的值分配给first变量。

最后,将temp(其保存first)分配给second。 这样就完成了交换过程。


交换数字而不使用临时变量

  1. #include <stdio.h>
  2. int main() {
  3. double a, b;
  4. printf("Enter a: ");
  5. scanf("%lf", &a);
  6. printf("Enter b: ");
  7. scanf("%lf", &b);
  8. // Swapping
  9. // a = (initial_a - initial_b)
  10. a = a - b;
  11. // b = (initial_a - initial_b) + initial_b = initial_a
  12. b = a + b;
  13. // a = initial_a - (initial_a - initial_b) = initial_b
  14. a = b - a;
  15. printf("After swapping, a = %.2lf\n", a);
  16. printf("After swapping, b = %.2lf", b);
  17. return 0;
  18. }

输出

  1. Enter a: 10.25
  2. Enter b: -12.5
  3. After swapping, a = -12.50
  4. After swapping, b = 10.25