您的位置:首页 > 编程语言 > C语言/C++

C语言小程序--交换两个变量的值

2016-03-16 20:58 218 查看

看到这个题目首先我们可以想到借助一个第三变量来实现

例如:a=10,b=20 我们想要交换a与b的值,可以借助一个第三变量temp,把a的值附给temp,把b的值给a,再把temp的值给b,就完成了交换。

下面用代码实现:

#include<stdio.h>

int main()

{

int a = 10, b = 20;

int temp;

printf("交换前a = %d,b = %d \n", a, b);

temp = a;

a = b;

b = temp;

printf("交换后 a = %d,b = %d \n", a, b);

system("pause");

return 0;

}

这种方法做出来以后,我们也可以增加点难度,有没有办法不使用中间变量就交换两个变量的值呢?稍加思考,其实这个也不难,我们可以借助数学中的加减运算来实现。

例如:a=10,b=20 令 a=a+b; 把a-b赋给b(注意:此处的a是重新赋值后的,即 a+b),再把a-b赋给a(此处的a和b都是重新赋值后的),这样就实现了两个数的交换。

代码如下:

#include <stdio.h>

int main()

{

int a=10 , b =20;

a = a + b;

b = a - b;

a = a - b;

printf("a =%d ,b=%d", a, b);

system("pause");

return 0;

}

除了上述方法,还可以使用异或运算来实现两个变量的值交换但因为这种方法不变阅读,不建议使用。

#include <stdio.h>

int main()

{

int a = 10, b = 20;

printf("交换前a = %d,b = %d \n", a, b);

a = a^b;

b = a^b;

a = a^b;

printf("交换后 a = %d,b = %d \n", a, b);

system("pause");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: