您的位置:首页 > 其它

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

2014-10-20 12:44 148 查看
交换两个变量的思路主要有两种:借助或不借助暂时变量。详细操作时又有下面三种简单算法:

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看起来非常好(少用一个变量),实际上非常少用,由于它的适用范围非常窄:仅仅有定义了加减法或异或的数据类型才干这么做,这两个算法仅仅是用于提高阅读代码的能力。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: