int main() {
int a, b, t;
scanf_s("%d%d", &a, &b);
t = a;
a = b;
b = t;
printf("%d %d\n", a, b);
return 0;
}
这种方法叫做三变量法。可以将这种方法形象的比喻成将一瓶酱油和一瓶醋借助一个空瓶子进行交换,先把酱油倒进空瓶,然后将醋倒入原来的空瓶中,最后把酱油从辅助的空瓶子中倒入原来的醋瓶子里。
例二
另一个方法没有借助任何变量,但是比较难理解。根据注释大概能看明白哈。
int main() {
int a, b;
scanf_s("%d%d", &a, &b);
a = a + b;//a作为总和
b = a - b;//b替换成原来的a
a = a - b;//a替换成原来的b
printf("%d %d\n", a, b);
return 0;
}
这个方法看起来很好(少用一个变量),但是实际上很少使用。因为适用范围很窄,只有定义了加减法 的数据类型才能使用此方法。三变量方法足够好,这个例子只是帮助提高阅读能力。
例三
#include<stdio.h>
int main() {
int a, b;
scanf_s("%d%d", &a, &b);
printf("%d %d\n", b, a);
return 0;
}
换句话说,我们的目标是解决问题,而不是为了编程去编程,
交换技巧:三变量法与不借助变量的奇思妙解
本文探讨了两种交换变量的方法:三变量法通过临时存储实现a和b的值互换,另一种是通过连续运算避开额外变量,适用于特定数据类型。作者强调编程应注重实用和理解。
1510

被折叠的 条评论
为什么被折叠?



