当前位置: 首页 > news >正文

C++基本编程2——二变量交换问题

  在 C++ 编程中,交换两个变量的值是一项基础且关键的操作,对基础性的知识和技能要熟练掌握。有了扎实基础才能从容去解决复杂问题。
1、临时变量法
使用一个临时变量tmp,来容纳变量a的值;
然后将变量b的值赋值给变量a。
此时tmp的值变成了a变量原来的值,a变量的值变成了b原来的值。
然后将tmp的值给回b,那么就完成了交换。

int a = 6, b = 8;
cout << "交换前 a=" << a << "; b=" << b << endl;
// 开始交换
int tmp = a;
a = b; 
b = tmp;
cout << "交换后 a=" << a << "; b=" << b << endl;

2、算术运算法
算术运算法只适用于数值类型的变量交换。

int a = 6, b = 8;
cout << "交换前 a=" << a << "; b=" << b << endl;
// 开始交换,三条语句完成a、b值互换
a = a + b;  
// a是原来的a值加上b的值,减去b就变成了原来的a值
b = a - b; 
// a是原来的a值加上b的值,减去原理a就变成了原来的b值
a = a - b;  
cout << "交换后 a=" << a << "; b=" << b << endl;

3、位运算法
此方法主要是利用异或运算的特性:
1)交换律和结合律:如 aba -> aab -> (aa)b
2)相同的整数异或结果为0: x^x0
3)任意整数和0异或结果不变:y^0
y

int a = 6, b = 8;
cout << "交换前 a=" << a << " b=" << b << endl;
a = a^b; // L1: 用a0 b0代表a b原来的值,执行完此句后 a = a0^b0;
b = a^b; // L2:把a替换成原a0^b0,a0^b0^b0结果是a0
a = a^b; // L3: a0^b0^a0,结过是b0 
cout << "交换后 a=" << a << " b=" << b << endl;

4、使用标准库

#include <utility>
std::swap(a,b);
http://www.jsqmd.com/news/33196/

相关文章:

  • containerd搭建与配置
  • 静默复制淘口令小程序系统:淘客高效推广的全新解决方案
  • 获客电子画册小程序系统:助力企业高效营销与客户管理的智能解决方案
  • 2025年接箍喷砂机定做厂家权威推荐:外螺纹喷沙机/管端螺纹喷砂机/环保喷砂机设备源头厂家精选
  • 2025年11月权威媒体公布:防爆膜/木纹膜/磨砂膜/隔热膜行业十大公司排行榜推荐与全面选购指南
  • 2025年市场上破碎机工厂推荐排行榜前十名
  • 汽车年检审车小程序系统:汽车后市场数字化解决方案
  • 实用指南:ICRA-2025 | 机器人具身探索导航新策略!CTSAC:基于课程学习Transformer SAC算法的目标导向机器人探索
  • 浅谈java中的悲观锁,乐观锁以及CAS操作
  • 2025年水泥板破碎机供货厂家口碑推荐榜:江苏环硕建设领跑
  • 2025年11月冷再生机生产厂家推荐榜单:江苏环硕建设领跑行业
  • 2025年11月冷再生机生产厂家推荐榜单
  • 2025年冷再生机源头厂家口碑排行
  • 微信小程序开发入门学习记录(一)
  • 2025 年 11 月 12Cr1MoVG 合金管,15CrMoG 合金管,P22 合金管公司最新推荐,实力品牌深度解析采购无忧之选!
  • Create RAC database using DBCA silent mode
  • P1011 [NOIP 1998 提高组] 车站
  • 2025年广东小儿穴位按摩培训机构权威推荐榜单:小儿穴位推拿培训/小儿推拿学习/小儿按摩学习源头机构精选
  • 2025年国内塑料栈板品牌综合评测:谁家塑料栈板夺魁?
  • 2025年11月6日
  • 2025年钣金机架工厂权威推荐榜单:铝型材设备机架/铝型材防护罩/设备机架制作源头厂家精选
  • PG故障处理:PG归档空间耗尽案例分析
  • 树莓派软路由wifi烧录pi3
  • 室内潮玩运动馆:特色项目/美味小吃/团建适配性权威指南
  • 12c RAC添加节点
  • 十五五规划释放AI产业新信号,边缘智能或成下一个风口
  • 2025 年锻钢阀源头厂家最新推荐排行榜:聚焦精工智造与节能减排,碳钢锻钢阀/手动锻钢阀/锻造钢阀/丝扣锻钢阀公司推荐
  • 2025年11月洗选煤成套设备厂家推荐排行榜前十强:山东鑫佳重工科技领衔
  • 揭秘MySQL优化器:为何索引在手却选择全表扫描?
  • manim边做边学--文字创建销毁的打字机效果