一、需求
有以下需求
有两个变量 a 和 b,形如
int a = 3;
int b = 4;
然后将 a 和 b 的值互换得到
a 的值是 4
b 的值是 3
二、需求分析
能想到,交换两个值的
使用第三个变量可完成交换,形如
int c = a;
a = b;
b = c;
在忽略其他情况下,整形变量也可以通过运算的方式交换它们的值,而不使用另外第三个变量
经研究整理出 4 种交换方式
第 1 种交换方式
int c = a;
a = b;
b = c;
第 2 种交换方式
a = a + b;
b = a - b;
a = a - b;
第 3 种交换方式
a = a ^ b;
b = a ^ b;
a = a ^ b;
第 4 种交换方式
a = a * b;
b = a / b;
a = a / b;
三、测试代码
#include <stdio.h>
// 主函数
int main(int argc, char **argv)
{
int a = 3;
int b = 4;
printf("交换前: a = %d, b = %d\n", a, b);
// 第1种方式
//int c = 0;
//c = a;
//a = b;
//b = c;
// 第2种方式
//a = a + b;
//b = a - b;
//a = a - b;
// 第3种方式
//a = a ^ b;
//b = a ^ b;
//a = a ^ b;
// 第4种方式
a = a * b;
b = a / b;
a = a / b;
printf("交换后: a = %d, b = %d\n", a, b);
return 0;
}
调试结果
四、_End
完成