在C语言中,有一个经典的算法:交换两个变量的值。现在有两个数a和b,需要将a的值给b,b的值给a。下面我来分享几个方法完成这个算法吧!
方法一:借助第三个空变量
一个瓶子装满了酱油,一个罐子装满了白醋,试问如何将酱油和白醋互换?最容易的方法是另外去找一个空杯子,先将酱油倒入空杯子,再将白醋倒入瓶子,最后将酱油倒入罐子。三步即可完成酱油和白醋的互换。C语言里也可以模仿这个思路。
核心思路:
声明第三个变量t,先将a的值赋值给t,再将b的值赋值给a,最后将t的值赋值给b。这样就完成a值和b值的互换。
源代码如下:
#include <stdio.h>
int main()
{
int a = 5,b =10,t;
t = a;
a = b;
b = t;
printf("a = %d b = %d",a,b);
return 0;
}
运行编译上面的源代码,将会输出以下结果:
a = 10 b = 5
方法二:纯数学思想
给定两个数a=5和b=10,先求a+b=15,然后b=15-10=5,最后a=15-5=10。
核心思路:
先将a+b赋值给a,赋值后的a=a+b=10+5=15,然后将a-b赋值给b,赋值后的b=a-b=15-10=5,最后将a-b赋值给a,赋值后的a=a-b=15-5=10。这样就完成a值和b值的互换。 源代码如下:
#include <stdio.h>
int main()
{
int a = 5,b = 10;
a = a + b;
b = a - b;
a = a - b;
printf("a = %d b = %d",a,b);
return 0;
}
运行编译上面的源代码,将会输出以下结果:
a = 10 b = 5