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

C语言基础:两个变量交换值的方法

2014-05-03 10:41 204 查看
学习任何语言基础时,两个数值得交换是必须掌握的,下面是3种不同的方式(c语言)

方法一:利用数学的计算技巧

#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 = b - a;

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

return 0;
}


这种方法的写法不唯一,对于a,b;只要先给其中一个先赋予a-b,其他的自己算一下就能写出来;

方法二:第三方变量,也是最常用,可读性最好的

#include <stdlib.h>
#include <stdio.h>
int main()
{

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

int temp = a;//先定义一个临时变量
a = b;
b = temp;

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

return 0;
}


方法三:位运算,利用^异或运算的特点:a^b^a = a^a^b = 0^b = b,交换律,相同数值异或为0,0和任何数异或为任何数

#include <stdio.h>
int main()
{
int a =10, b = 20;
printf("交换前a=%d, b=%d\n", a, b);

a = a^b;
b = b^a;
a = a^b;

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

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