【C语言刷题】交换两个变量(包含不创建临时变量)的解法

news/2024/7/8 0:07:49

目录

  • 一.常规方法(引入空瓶变量)
  • 二.题目要求,不允许创建临时变量
    • 2.1 通过两数加法实现交换
    • 2.2 按位异或操作符实现交换

题目:写代码实现两个变量的交换。(不允许创建临时变量)

一.常规方法(引入空瓶变量)

#include <stdio.h>
int main()
{int a = 0;int b = 0;scanf("%d %d",&a, &b);printf("交换前:a=%d b=%d\n", a, b);int tmp = 0;// 空瓶变量tmp = a;a = b;b = tmp;printf("交换后:a=%d b=%d\n", a, b);return 0;
}

在这里插入图片描述

二.题目要求,不允许创建临时变量

2.1 通过两数加法实现交换

#include <stdio.h>
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);printf("交换前:a=%d b=%d\n", a, b);a = a + b;  // a+b之和赋给ab = a - b; //  和-b为a赋给b a = a - b; //  和-b(b是a的值)为b赋给a printf("交换后:a=%d b=%d\n", a, b);return 0;
}

在这里插入图片描述
这里理清关系就不难理解。

2.2 按位异或操作符实现交换

#include <stdio.h>
int main()
{int a = 5;int b = 3;printf("交换前:a=%d b=%d\n", a, b);// 按位异或 :相同为0,相异为1// 逻辑与用加法实现交换类似// 按位异或具有交换律a = a^b;b = a^b;a = a^b;printf("交换后:a=%d b=%d\n", a, b);return 0;
}

在这里插入图片描述
以上需要注意的点都以代码注释标出,请小伙伴们留意查看~


http://lihuaxi.xjx100.cn/news/284296.html

相关文章

抵制996!Python之父发声背后,这个社区一呼百应!

「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑这一次&#xff0c;程序员们也终于见证了一次 Python 社区的强大能量&#xff01;3 月底&#xff0c;996.ICU 话题诞生后&#xff0c;目前已在 GitHub Trending 上总计获得了近 23 万个 Star&#xff0c;一度冲…

图像去噪的深度学习最新综述论文,36页pdf,Deep Learning on Image Denoising

图像去噪是学术工业关注的问题。最近广东深圳哈工大分院的研究人员撰写了最新图像去噪深度学习的综述论文&#xff0c;非常值得学习&#xff01;关注文章公众号对话框回复“paper29”获取本篇论文地址&#xff1a;https://arxiv.org/abs/1912.13171简介&#xff1a;深度学习技术…

关于组培的一些想法(求知解惑),多肉科普

本文抛砖引玉&#xff0c;根据自己这段时间的看帖学习&#xff0c;提出自己的一些想法&#xff0c;希望各位看官特别是专家的指正 何为组培 所谓组培就是无性繁殖&#xff0c;商家组培的是一种&#xff0c;叶插是其实也是一种&#xff0c;有人说是介于种子繁殖和克隆之间的一种…

Linux 中 rsync 备份数据使用实例

rsync工具用于将文件和目录从一个位置同步到另一个位置。同步的位置可以在本地服务器或远程服务器上。接下来教大家在Linux 中rsync备份数据使用实例 在Centos中使用下面命令安装rsync&#xff1a; [rootlocalhost ~]# yum -y install rsync 实例一&#xff1a;本机中的两个目…

C语言易错题--将一个整数转换为六进制打印

题目来源&#xff1a;牛客网编程入门训练--BC111 小乐乐与进制转换 输入描述&#xff1a; 输入一个正整数n (1 ≤ n ≤ 109) 输出描述&#xff1a; 输出一行&#xff0c;为正整数n表示为六进制的结果 解题思路&#xff1a;由十进制数字打印类比可得&#xff0c;需要得到一个十…

90后教授:回国是用数学计算出的“最优解”

曾经&#xff0c;有一个在美国“暴富”的机会摆在南京大学数学系教授宗润弘面前。当时&#xff0c;26岁的宗润弘还在美国普林斯顿高等研究院做研究员&#xff0c;他的成就和才华引起了美国华尔街一位高层人士的注意。对方许诺&#xff0c;如果他进入华尔街&#xff0c;可以直接…

“重构”黑洞:26岁MIT研究生的新算法 | 人物志

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑整理 | 若名出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;这是一个重要时刻。除了发布跟丈夫的两张合照外&#xff0c;Katie Bouman 在 Facebook 上鲜有内容更新&#…

MySQL之alter语句用法总结

2019独角兽企业重金招聘Python工程师标准>>> 1&#xff1a;删除列 ALTER TABLE 【表名字】 DROP 【列名称】 2&#xff1a;增加列 ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT 注释说明 3&#xff1a;修改列的类型信息 ALTER TABLE 【表名字】 CH…