C语言交换a,b值的几种写法
方法一
定义中间变量c,吧a值赋给c,把b值赋给a,把c值赋给b,完成交换
#include <stdio.h>
int main()
{int a = 2;int b = 5;int c = a;printf("a=%d\n", a = b);{printf("b=%d\n", b = c);}return 0;
}
方法二
把a+b赋给a,然后用a-b(等于a原来的值)赋给b,再用a-b(等于b原来的值)赋给a
#include<stdio.h>
#include<stdlib.h>
int main()
{int a = 2;int b = 5;a = a + b;b = a - b;a = a - b;printf("a=%d,b=%d", a, b);return 0;
}
注意不可以写成
#include<stdio.h>
#include<stdlib.h>
void Swap(int x,int y)
{int tmp = x;x = y;y = tmp;
}int main()
{int a = 10;int b = 20;int tmp = 0;printf("%d,%d\n",a,b);Swap(a,b);printf("%d,%d\n",a,b);return 0;
}
因为C语言中(按值传递)形参的改变 不影响实参的值
方法三
用异或
#include<stdio.h>
#include<stdlib.h>
int main()
{int a = 6;//0000 0110int b = 4;//0000 0100a = a ^ b;//a = 0000 0010 2b = a ^ b;//0000 0110 b = 6a = a ^ b;//4 a = 4;return 0;
}
方法四:
用指针
#define _CRT_SECURE_NO_WARNINGS 1
void Swap(int *p, int *q)
{int tmp = *p;\\正确写法*p = *q;*q = tmp;
}/*void Swap2(int *p, int *q) 错误写法
{int *tmp = p;p = q;q = tmp;
}*/
int main()
{int a = 10;int b = 20;printf("%d,%d\n", a, b);Swap(&a, &b);printf("%d,%d\n", a, b);return 0;
}
加油鸭~
C语言交换a,b值的几种写法相关推荐
- C语言交换两个数字的三种做法
C语言交换两个数字的三种做法 1.借助中间变量法: void swap(int *a , int *b) {int temp;temp = *a;*a = *b;*b = temp; } 2.使用加减 ...
- 交换a,b值的三种方法
给定两个数a=10,b=20交换a与b的值的三种方法 1.首先第一种是我们最容易想到的,定义一个空tmp,用其交换,在三个数按从小到大(或从大到小)排序输出时曾用到过 2.第二种方法,用加减法来 ...
- 属性赋初始值的四种写法--C#6.0新特性
1 介绍 在C# 6.0 语法出来前,属性的赋初始值使用get:set:虽然已经相对于最原始的写法简洁了非常多,但是还不够,还不够,还不够...今天刚好一直在想着前几天朋友问我的有关属性赋初始值的问题 ...
- C语言——比较两个数大小的两种写法
1.普通写法 #include<stdio.h> int main() {int num1=10;int num2=20;if(num1>num2)printf("较大值是 ...
- C语言交换两个数的值与形参与实参理解
C Simple Swap Program – Assignments 通过赋值来实现交换变量 vi swap_simple0.c #include <stdio.h>int main() ...
- 【C语言】如何不用中间变量交换变量的值
[C语言]如何不用中间变量交换变量的值 思路分析 一般我们进行C语言中的变量交换时都是使用一个中间变量来进行求解,其实不适用中间变量也一样可以只需要使用下面的公司即可 m = m + n -n n = ...
- c语言交换两个变量的值 讲课,用C语言的泛型实现交换两个变量值
第一种,最常用的是创建一个中间变量来循环交换它们的值: T a = ...; T b = ...; . T tmp = a; a = b; a = tmp; 我们称这种策略p99_swap1.在这里, ...
- C 语言交换 a 和 b 值的 4 种方式
一.需求 有以下需求 有两个变量 a 和 b,形如 int a = 3; int b = 4; 然后将 a 和 b 的值互换得到 a 的值是 4 b 的值是 3 二.需求分析 能想到,交换两个值的 使 ...
- 【第03题】给定 a 和 b ,交换它们的值并输出 | 四种解法
文章目录 零.写在前面 一.题目描述 二.解题思路 三.代码详解 1.正确解法1:引入临时变量 2.正确解法2:引入算术运算 3.正确解法3:引入异或运算 4.正确解法4:奇淫技巧 四.推荐专栏 五. ...
- C语言交换两个数组的内容
C语言交换两个数组的内容 **思路分析:**创建一个临时的变量,用来保存循环中每一次一数组的值,然后把数组二的值赋值给数组一,再把临时变量的值赋值给数组一,这样就完成了两个数组的内容交换 #inclu ...
最新文章
- 浅析 Linux 初始化 init 系统:sysvinit
- (十)Centos之文件搜索命令find
- System.PlatformNotSupportedException
- 推进大数据中心新能源应用 广东省六部门联合印发培育新能源战略性新兴产业集群行动计划(2021—2025年)...
- wxml报错原因_C#生成、解析xml文件以及处理报错原因
- java 返回js_如何基于java或js获取URL返回状态码
- 汇编语言笔记(一):基础
- sharepoint SPFolder的使用
- ICT学习笔记(3)IP编址
- VSCode Python Tutorial
- SpringBoot App Registers UNKNOWN with Eureka in Brixton SR3
- BZOJ 1041 圆上的整点 数学
- 在Word中使用带圈数字为正文编号
- 安装VMWare Tools教程
- erp系统服务器维护,ERP系统维护服务器维护管理文档模板.doc
- 武昌职业学院与湖北美和易思教育科技有限公司校企签约揭牌仪式隆重举行
- 电脑插入耳机检测不到没反应怎么办?
- ResponseEntity总结
- SQL中类型转换函数
- js 字符串删除首尾_js去除字符串首尾空格
热门文章
- PyQt5在已运行界面中通过Botton按钮触发添加新的Botton按钮
- ps利用高反差保留去除大面积雀斑
- Python小游戏大鱼吃小鱼
- 饥荒联机版服务器启动慢_饥荒(Don#x27;t Starve Together)腾讯云服务器搭建(unbuntu篇)
- Mysql中使用逗号隔开多张表生成的表实例
- 使用yaml文件指定 kata 安全容器配置相关参数
- Head first jQuery读书笔记
- [Elasticsearch] 邻近匹配 (一) - 短语匹配以及slop参数
- Oracle 计算起始日期之间的工作日天数(目前只支持同一年)
- 1+x 云计算平台运维与开发测试题