🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# C 程序:交换两个数字 > 原文: [https://www.programiz.com/c-programming/examples/swapping](https://www.programiz.com/c-programming/examples/swapping) #### 在此示例中,您将学习使用两种不同的技术在 C 编程中交换两个数字。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C 数据类型](/c-programming/c-data-types) * [C 编程运算符](/c-programming/c-operators) * [C 输入输出(I/O)](/c-programming/c-input-output) * * * ## 使用临时变量交换数字 ```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; printf("\nAfter swapping, firstNumber = %.2lf\n", first); printf("After swapping, secondNumber = %.2lf", second); return 0; } ``` **输出** ```c Enter first number: 1.20 Enter second number: 2.45 After swapping, firstNumber = 2.45 After swapping, secondNumber = 1.20 ``` 在上述程序中,为`temp`变量分配了`first`变量的值。 然后,将`second`变量的值分配给`first`变量。 最后,将`temp`(其保存`first`)分配给`second`。 这样就完成了交换过程。 * * * ## 交换数字而不使用临时变量 ```c #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; printf("After swapping, a = %.2lf\n", a); printf("After swapping, b = %.2lf", b); return 0; } ``` **输出** ```c Enter a: 10.25 Enter b: -12.5 After swapping, a = -12.50 After swapping, b = 10.25 ```