不产生第三个临时变量的前提交换两组数据

方法一:(简单加减法实现运算)

#include <stdio.h>int main(){int a, b;a = 5;b = 7;printf("a=%d b=%d\n",a, b);printf("交换后:\n");a = a + b;b = a - b;a = a - b;printf("a=%d b=%d\n",a, b);}

注意:这个算法只能解决部分问题,可能会溢出;

方法二:(异或)

#include <stdio.h>int main(){int a, b;a = 5;b = 7;printf("a=%d b=%d\n",a, b);printf("交换后:\n");a = a^b;b = a^b;a = a^b;printf("a=%d b=%d\n",a, b);}


©著作权归作者所有:来自51CTO博客作者防.的原创作品,如需转载,请注明出处,否则将追究法律责任