在很多情况下,程序员需要交换两个变量的值。 在这里,我们将学习如何交换两个整数变量的值,这可以交换任何类型的值。 变量之间的值可以通过两种方式进行交换:
- 借助第三个(temp)变量
- 不使用任何临时变量
我们已经学会了第一种方法。 这里将学习第二种方法。虽然它看起来像一个魔法,但它只是一个小技巧。 想象一下,现在我们有两个数字1
和2
分别存储在变量a
和b
中 -
如果相加变量a
和b
,即(1 + 2)
并存储到a
,则a
将变为3
,b
仍然为2
。
现在从a(3)
的新值中减去b(2)
,并将其存储到b
,那么a
仍然是3
,b
变成1
。
注意:变量
a
现在的值是:1
。
现在,我们从3
中减去b
的具有新值1
,并将其存储到b(a = 3 - 1)
,然后变量a
的值变成2
。最后得出结论 - 两个变量的值被交换。
偌实现
C语言实现上述算法应该是这样的 -
#include <stdio.h>
int main() {
int a, b;
a = 11;
b = 99;
printf("Values before swapping - \n a = %d, b = %d \n\n", a, b);
a = a + b; // ( 11 + 99 = 110)
b = a - b; // ( 110 - 99 = 11)
a = a - b; // ( 110 - 11 = 99)
printf("Values after swapping - \n a = %d, b = %d \n", a, b);
}
执行上面示例代码,得到以下结果 -
Values before swapping -
a = 11, b = 99
Values after swapping -
a = 99, b = 11
上一篇:
C语言比较三个整数示例
下一篇:
C语言循环示例