码迷,mamicode.com
首页 > 其他好文 > 详细

交换变量的三种方法及简单分析

时间:2014-10-17 10:32:06      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:c语言   交换变量   

交换两个变量的思路主要有两种:借助或不借助临时变量。具体操作时又有以下三种简单算法:

1、借助临时变量的算法

#include <stdio.h>

int main(void)
{
	int a, b, t;
	scanf("%d%d", &a, &b);
	t = a;
	a = b;
	b = t;
	printf("a = %d, b = %d\n", a, b);
	return 0;
}


2、不借助临时变量的算法1(通过加减运算
#include <stdio.h>

int main(void)
{
	int a, b;
	scanf("%d%d", &a, &b);
	a = a + b;
	b = a - b;
	a = a - b;
	printf("a = %d, b = %d\n", a, b);
	return 0;
}


3、不借助临时变量的算法2(通过异或运算

#include <stdio.h>

int main(void)
{
	int a, b;
	scanf("%d%d", &a, &b);
	a = a ^ b;
	b = b ^ a;
	a = a ^ b;
	printf("a = %d, b = %d\n", a, b);
	return 0;
}
总结:平时使用时,借助临时变量的算法已经足够好了。不借助临时变量的算法1和2看起来很好(少用一个变量),实际上很少用,因为它的适用范围很窄:只有定义了加减法或异或的数据类型才能这么做,这两个算法只是用于提高阅读代码的能力。

交换变量的三种方法及简单分析

标签:c语言   交换变量   

原文地址:http://blog.csdn.net/mengwang024/article/details/40180283

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!