C语言经典算法之交换两个变量的值

C/C++
288
0
0
2022-11-14

在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