交换两个变量的思路主要有两种:借助或不借助临时变量。具体操作时又有以下三种简单算法:
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; }
#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; }
#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看起来很好(少用一个变量),实际上很少用,因为它的适用范围很窄:只有定义了加减法或异或的数据类型才能这么做,这两个算法只是用于提高阅读代码的能力。
原文地址:http://blog.csdn.net/mengwang024/article/details/40180283