青少年人工智能编程科普教育机构-凡恩机器人联盟

手机站
当前位置: 主页 > C++ > 正文

C++入门指南 第04课:变量值交换、程序注释详解—交换两个变量的值(四种方法)-成都凡恩机器人联盟

来源:成都凡恩
发布人:创始人
时间:2024-10-16 15:51:49

方法一:中间变量

要把两个杯子里的水互换, 那么只需要找第三个杯子临时存放一下这两个杯子其中一个,


用C语言表示:


// 定义两个初始值

int a = 10;

int b = 20;

//交换

int temp = a;

a = b;

b = temp;


那么, 有没有不需要中间变量就能交换两个数的方式呢?


方法二:加减运算

// 定义两个初始值

int a = 10;

int b = 12;

// 交换两个值

a = a + b;

b = a - b;

a = a - b;


上面的代码就是利用了加减法和c语言中变量赋值的特性做到的, 这样的代码在c++, java, python及其他语言也都是可行的.


此外还有单行写法


a = a + b - (b = a);

1

怎么样是不是很酷炫, 热爱算法的你怎么能不搞点这种又简便, 又酷炫的写法? 别急, 下面还有更多


方法三:乘除运算

// 定义两个初始值

int a = 10;

int b = 20;

// 交换两个变量的值

a = a * b;

b = a / b;

a = a / b;


原理相同, 同样的也有单行写法


a = a * b / (b = a);

1

因为乘除运行时从左到右的, a*b得到的结果再处以a是一定可以整除的


方法四:位运算

很多位运算都可以达到这样的效果, 不过还是异或最为简单, 其他的读者可以自行探索


// 定义两个初始值

int a = 10;

int b = 20;

// 交换两个变量的值

a = a ^ b;

b = a ^ b;

a = a ^ b;


单行写法:


a = a ^ b ^ (b = a);

1

总结:

上述几种方法中, 原理都大差不差, 加减运算和乘除运算会更好理解, 但是要说效率最高, 那肯定是位运算

声明:本站稿件凡恩品牌资讯以外部分类目资讯转载来自于互联网,如有疑义请联系我们删除。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
相关推荐HOT
少儿编程C++基础:前缀和算法(二)
少儿编程C++基础:前缀和算法(二)

前缀和是一个数组的某项下标之前(包括该元素)的所有数组元素的和,前缀和是一种重要的预处理操作,可以降低查询的时间复杂度。本文以 leetcode 中算法题为例子多前缀和算法的应用进行说明前缀和应用举例......详情>>

2024-11-12
少儿编程C++基础:前缀和算法(一)
少儿编程C++基础:前缀和算法(一)

给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 : 输入:nums = [1,1,1], k = 2 输出: 2, [1,1] 与 [1,1] 为两种不同的......详情>>

2024-11-12
少儿编程C++基础:双指针使用总结(三)
少儿编程C++基础:双指针使用总结(三)

双指针是一种解决问题的技巧或者思维方式,指在访问一个序列中的数据时使用两个指针进行扫描,两个指针可以是同向的,也可以是反向的;我们的关注点可以是这两个指针指向的两个元素本身,也可以是两个指针中间的区域......详情>>

2024-11-12
少儿编程C++基础:双指针总结(一)
少儿编程C++基础:双指针总结(一)

双指针是一种解决问题的技巧或者思维方式,指在访问一个序列中的数据时使用两个指针进行扫描,两个指针可以是同向的,也可以是反向的;我们的关注点可以是这两个指针指向的两个元素本身,也可以是两个指针中间的区域......详情>>

2024-11-12
少儿编程C++基础:图的表示方式
少儿编程C++基础:图的表示方式

图的概念1、基本术语图是由节点以及连接这些节点边组成。2、应用举例2.1社交网络在社交网络中所有的用户构成了多对多的朋友关系网,这个关系网就是图:每个人都是图中的节点,互相认识的人之间通过边进行联系。......详情>>

2024-11-12
少儿编程导师
朵朵老师
少儿编程导师
琴琴老师
少儿编程导师
苏老师

赛事资讯

凡恩资讯

政策资讯