一、需求

有以下需求

有两个变量 a 和 b,形如

int a = 3;

int b = 4;

然后将 a 和 b 的值互换得到

a 的值是 4

b 的值是 3

二、需求分析

能想到,交换两个值的

使用第三个变量可完成交换,形如

int c = a;

a = b;

b = c;

在忽略其他情况下,整形变量也可以通过运算的方式交换它们的值,而不使用另外第三个变量

经研究整理出 4 种交换方式

第 1 种交换方式

int c = a;

a = b;

b = c;

第 2 种交换方式

a = a + b;

b = a - b;

a = a - b;

第 3 种交换方式

a = a ^ b;

b = a ^ b;

a = a ^ b;

第 4 种交换方式

a = a * b;

b = a / b;

a = a / b;

三、测试代码

#include <stdio.h>
// 主函数
int main(int argc, char **argv)
{int a = 3;int b = 4;printf("交换前: a = %d, b = %d\n", a, b);// 第1种方式//int c = 0;//c = a;//a = b;//b = c;// 第2种方式//a = a + b;//b = a - b;//a = a - b;// 第3种方式//a = a ^ b;//b = a ^ b;//a = a ^ b;// 第4种方式a = a * b;b = a / b;a = a / b;printf("交换后: a = %d, b = %d\n", a, b);return 0;
}

调试结果

四、_End

完成

C 语言交换 a 和 b 值的 4 种方式相关推荐

  1. C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)

    C语言的二维数组初始化的几种方式介绍 1.直接赋值 2.循环对每个元素赋值 3.借用memset/memset_s初始化为0或-1 4.`数组所有元素初始化为相同值(用于大数组初始化贼方便)` 1.直 ...

  2. ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  3. python执行系统命令后获取返回值的几种方式集合

    第一种情况 os.system('ps aux') 执行系统命令,没有返回值 第二种情况 result = os.popen('ps aux') res = result.read() for lin ...

  4. 经典面试题(三):ASP.NET部分----ASP.NET 页面之间传递值的几种方式

    ASP.NET 页面之间传递值的几种方式 1.使用QueryString,  如....?id=1; response. Redirect().... 2.使用Session变量. 3.使用Serve ...

  5. c语言返回二叉树的大小,C语言中计算二叉树的宽度的两种方式

    C语言中计算二叉树的宽度的两种方式 二叉树作为一种很特殊的数据结构,功能上有很大的作用!今天就来看看怎么计算一个二叉树的最大的宽度吧. 采用递归方式 下面是代码内容: int GetMaxWidth( ...

  6. keras embeding设置初始值的两种方式

    随机初始化Embedding from keras.models import Sequential from keras.layers import Embedding import numpy a ...

  7. 计算MD5值有几种方式

    想知道计算"hello"的MD5值有几种方式 linux 命令行: [sm2env ~]# echo "hello" | md5sum | cut -d ' ' ...

  8. 拿到JS异步函数返回值的几种方式

    在我们的编码过程中,为了满足业务需求,经常需要获取JS异步函数的返回值.今天就来汇总一下拿值的几种方式. 1,通过回调函数的方式来拿返回值,这个想必大家不会陌生 function getSomethi ...

  9. C语言中存储多个字符串的两种方式

    C语言中存储多个字符串的两种方式 方式一 二维字符串数组 声明: char name[4][10] = { "Justinian", "Momo", " ...

最新文章

  1. mysql 添加索引
  2. 计算机程序是怎样运行的-hello world程序运行原理
  3. 细节决定成败,做网站也是如此
  4. 三、关于网页布局你该知道这些!(布局总结:标准流、浮动、定位)
  5. spark sql合并小文件_Spark SQL小文件问题在OPPO的解决方案
  6. swagger2maven依赖_Maven + SpringMVC项目集成Swagger
  7. python-函数的注释
  8. Latex空格一个字符\空格
  9. Windows下Python,setuptools,pip,virtualenv的安装
  10. 推荐一款比较不错实用的在线文本比较工具
  11. eos utility中文版 v3.8.20 最新版
  12. 用 Maven来管理java项目
  13. 软考中级软件设计师备考详细资料
  14. Mysql获取当天用户生日
  15. 【Unityc#专题篇】—基础章题单实践
  16. 什么是证书颁发机构?
  17. PyQt5基本控件详解之QTextEdit(五)
  18. 浅谈大数据领域的云计算
  19. Nginx配置静态访问txt文件(微信校验文件)
  20. 忍者必须死3突然服务器维修,忍者必须死3开服补偿内容介绍

热门文章

  1. js视频背景切换js特效代码
  2. 你的Mac支持更新macOS Monterey吗
  3. ADS(Advanced Design system)谐波平衡分析(HarmonicBalance)和参数扫描分析(ParamSweep)
  4. zumi 画师_【Zumi画师】【全彩无修】 1- 42期图集整合 18G
  5. hdu 4466 Triangle (数学)
  6. 视频文件头解析--wmv-浅析
  7. C# Socket模拟发送接收
  8. #每天一篇论文#238/365 基于注意力的上下文聚合网络用于单目视觉深度估计
  9. 第十二届CDA认证考试报告重磅发布!
  10. 使用宝塔面板快速部署Django项目