c语言----交换a,b的值(分别用临时变量,加减法,异或实现)
来源:互联网 发布:sql server创建视图 编辑:程序博客网 时间:2024/05/29 13:15
1.借助临时变量
</pre><pre name="code" class="objc">#include <stdio.h>int main(){ int a=0; int b=0; printf("please enter (a,b)"); scanf("%d%d",&a,&b); printf("before:a=%d b=%d \n",a,b); a=a+b; b=a-b;//b=a+b-b=a a=a-b;//a=a+b-a=b printf("after:a=%d b=%d",a,b); return 0;}2.加法实现
#include <stdio.h>int main(){ int a=0; int b=0; printf("please enter (a,b)"); scanf("%d%d",&a,&b); printf("before:a=%d b=%d \n",a,b); a=a+b; b=a-b;//b=a+b-b=a a=a-b;//a=a+b-a=b printf("after:a=%d b=%d",a,b); return 0;}
3.异或实现
异或:两个值不相等时结果为真。如:1^1=0
1^0=1
0^0=0
0^1=1
则 1^0^1=0 得出一个结论:相同数异或会抵消。这也是实现两个数交换的依据。
#include <stdio.h>int main(){ int a=0; int b=0; printf("please enter (a,b)"); scanf("%d%d",&a,&b); printf("before:a=%d b=%d \n",a,b); a=a^b; b=a^b;//b=a^(b^b)=a a=a^b;//a=(a^a)^b=b printf("after:a=%d b=%d",a,b); return 0;}
0 0
- c语言----交换a,b的值(分别用临时变量,加减法,异或实现)
- 不设临时变量交换a,b的值
- 不用临时变量,交换整数a,b的值
- (1.1.2)C的|、||、&、&&、异或、~、!运算 (交换两个值,不用临时变量)
- 不允许创建临时变量,交换两个数的内容(用异或实现)
- C语言实现两个整形变量的值的交换,不使用临时变量
- "异或"实现a和b两变量交换
- "异或"实现a和b两变量交换
- 4.2.编程从键盘输入两个整数分别给变量a, b, 要求在不借助于其它变量的条件下将变量a和b的值实现交换。
- 【c语言】 交换两个整形变量的值(要求不创建临时变量)
- 不用临时变量交换两个数的值(C实现)
- 不使用临时变量交换两个变量的值(异或,加减,乘除)
- C 语言swap(a,b)值交换的几种实现方法
- 不借助第3个变量交换a和b的值(c语言)
- 不借助第3个变量交换a和b的值(c语言)
- 不使用临时变量交换两个无符号 正数a和b的值
- 不用第三个变量实现a,b的值交换
- 不用第三个变量实现a,b的值交换
- 1-1 C++ learning
- 你可能不清楚的Java细节(2)--for及for-each各自循环适用的场景
- 关于今天笔试关于java一些基础题的疑惑
- 初探Docker
- this关键字
- c语言----交换a,b的值(分别用临时变量,加减法,异或实现)
- 解决listview加载网络图片乱跳
- 构造方法
- android事件分发源码解析(下)
- Fragment的使用
- poj 1573 Robot Motion
- 成员方法
- 地址栏中去掉端口号 java
- AcDream1007