交换两个数字的 C 程序

要理解此示例,您应该具备以下 C 语言编程主题的知识:

使用临时变量交换数字

#include<stdio.h>
int main() {
      double first, second, temp;
      printf("Enter first number: ");
      scanf("%lf", &first);
      printf("Enter second number: ");
      scanf("%lf", &second);

      // Value of first is assigned to temp
      temp = first;

      // Value of second is assigned to first
      first = second;

      // Value of temp (initial value of first) is assigned to second
      second = temp;

      // %.2lf displays number up to 2 decimal points
      printf("\nAfter swapping, firstNumber = %.2lf\n", first);
      printf("After swapping, secondNumber = %.2lf", second);
      return 0;
}

输出

Enter first number: 1.20
Enter second number: 2.45

After swapping, first number = 2.45
After swapping, second number = 1.20

在上面的程序中, temp 变量被赋值为 first 的值。

然后, second 变量的值 被赋值给 first 变量。

最后, temp 变量 (first 的初始值) 分配给 second. 这样就完成了交换过程。

不使用临时变量交换数字

#include <stdio.h>
int main() {
    double a, b;
    printf("Enter a: ");
    scanf("%lf", &a);
    printf("Enter b: ");
    scanf("%lf", &b);

    // Swapping

    // a = (initial_a - initial_b)
    a = a - b;

    // b = (initial_a - initial_b) + initial_b = initial_a
    b = a + b;

    // a = initial_a - (initial_a - initial_b) = initial_b
    a = b - a;

​​​​    // %.2lf displays number up to 2 decimal points
    printf("After swapping, a = %.2lf\n", a);
    printf("After swapping, b = %.2lf", b);
    return 0;
}

输出

Enter a: 10.25
Enter b: -12.5
After swapping, a = -12.50
After swapping, b = 10.25