C语言之实现两个整数的交换的三种方法

本文介绍了三种在C语言中交换两个数的方法:经典解法借助中间变量、利用加减法的技巧实现的其他解法以及使用异或运算的特殊解法。作者强调了后两者作为扩展知识的价值。
摘要由CSDN通过智能技术生成


前言

我对自己说,跨过去,春天不远了,不要失去发芽的心情。 ——林清玄

交换两个数是C语言中很经典的习题,非常简单且容易上手,但各位小伙伴们有没有想过除了借助中间变量以外的其他方法来完成这道题呢?诸君请看下文。

一、交换两个数之法一——经典解法

由于代码比较简单,解释就以注释的形式写在代码中了。

#include <stdio.h>
int main(void)
{	
	int a = 0;
	int b = 0;
	int tmp = 0;
	scanf("%d%d", &a, &b);
	tmp = a;//借助中间变量存放a
	a = b;//把b放到a中
	b = tmp;//把tmp(a)放到b中
	return 0;
}

二、交换两个数之法二——其他解法

#include <stdio.h>
int main(void)
{	
	int a = 0;
	int b = 0;
	int tmp = 0;
	scanf("%d%d", &a, &b);
	a = a + b;//a中存放二者之和
	b = a - b;//等价于a + b - b = a
	a = a - b;//等价于a + b - a = b
	return 0;

#三、交换两个数之法三——特殊解法

这里要做一些铺垫
^ 异或运算符
a ^ a = 0;
a ^ 0 = a;

#include <stdio.h>
int main(void)
{	
	int a = 0;
	int b = 0;
	int tmp = 0;
	scanf("%d%d", &a, &b);
	a = a ^ b;
	b = a ^ b;//等价于a ^ b ^ b = a ^ 0 = a
	a = a ^ b;//等价于a ^ b ^ a = b ^ 0 = b
	return 0;

总结

以上就是小桃子目前所学习到的交换两个数的全部方法。方法一较为常见,方法二和方法三较为少见,可以作为知识的扩展。

感谢你的阅读,如果觉得小桃子的博客有帮助的话,麻烦点个赞哦~

我是小桃子,我爱这个世界。
2024年2月27号23点17分 于寝室

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值