当前位置: 首页> 科技> 互联网 > 【C language】两个数的交换

【C language】两个数的交换

时间:2025/9/12 11:10:21来源:https://blog.csdn.net/2302_79031646/article/details/139299361 浏览次数:2次

题解:两个数的交换(第三变量 + 数学求和 + 异或法)

目录

  • 1.题目
  • 2.第三变量法
  • 3.数学方法
  • 4.异或方法

1.题目

题目如下:请交换两个整形变量的数值,且不使用第三临时变量

2.第三变量法

int a = 10;
int b = 20;
printf("swap before: a = %d; b = %d", a, b);
int temp = a;
a = b;
b = temp;
printf("swap later: a = %d; b = %d", a, b);

优点:常规且效率高
缺点:借用第三临时变量

3.数学方法

int a = 10;
int b = 20;
printf("swap before: a = %d; b = %d", a, b);a = a + b;
b = a - b;
a = a - b;
printf("swap later: a = %d; b = %d", a, b);

缺点:溢出风险

4.异或方法

int a = 10;
int b = 20;
printf("swap before: a = %d; b = %d", a, b);a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("swap later: a = %d; b = %d", a, b);

缺点:

  • 可读性差
  • 仅适用于整形
  • 效率低

EOF

关键字:【C language】两个数的交换

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: