跳到主要内容

C 编程:交换两个数字的程序

要理解这个示例,你应该了解以下 C 编程 主题:

使用临时变量交换数字

#include <stdio.h>
int main() {
double first, second, temp;
printf("输入第一个数字:");
scanf("%lf", &first);
printf("输入第二个数字:");
scanf("%lf", &second);

// 将 first 的值赋给 temp
temp = first;

// 将 second 的值赋给 first
first = second;

// 将 temp(first 的初始值)赋给 second
second = temp;

// %.2lf 显示两位小数点后的数字
printf("\n交换后,第一个数字 = %.2lf\n", first);
printf("交换后,第二个数字 = %.2lf", second);
return 0;
}

输出

输入第一个数字:1.20
输入第二个数字:2.45

交换后,第一个数字 = 2.45
交换后,第二个数字 = 1.20

在上述程序中,变量 temp 被赋予 first 变量的值。

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

最后,temp(保存 first 的初始值)被赋给 second。这样完成了交换过程。

不使用临时变量交换数字

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

// 交换

// 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 显示两位小数点后的数字
printf("交换后,a = %.2lf\n", a);
printf("交换后,b = %.2lf", b);

return 0;
}

输出

输入 a: 10.25
输入 b: -12.5
交换后,a = -12.50
交换后,b = 10.25