c语言中不用中间变量交换两个数 使用逻辑运算符

如题所述

a=a+b b=a-b a=a-b 能理解不追问

不要加减法 乘除法 使用逻辑运算符

追答

a=a^b b=a^b a=a^b 动笔写一写 转成二进制 利用存储原理

追问

这是按位运算符吧。。。用逻辑运算符可以做到吗?

追答

这是逻辑运算中的异或运算 位运算> 这样的

追问

那用 非 与 或 这三个逻辑运算符 能实现吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-11
a = 10
b = 20
a = a+b
b = a-b
a = a-b追问

不要加减法 乘除法 使用逻辑运算符

C语言中,怎样不用中间变量而互换两个变量的值呢?
有两种方式可以不使用中间变量,交换同类型的变量a,b的值:1 .使用加法操作a+=b; b=a-b;a -= b;2 .使用异或操作:a^=b;b^=a;a^=b;C语言运算符是说明特定操作的符号, 它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除...

不用中间变量交换 a ,b(三种方法)
不用中间变量交换两个变量的值:1、加减法:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失。a = a + b;b = a - b;a = a - b;2、异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换。a = a^b;b = a^b;a = a^b;3、乘除法:可以...

用C语言来实现,不通过中间变量,交换两个整形变量的值?
比如 a = 3.123456 b = 1234567.000000 交换后各变量值变为:a = 1234567.000000 b = 3.125000 所以说它适合于交换整型和浮点型数值的变量 2.乘除法 a = a * b;b = a \/ b;a = a \/ b;乘除法更像是加减法向乘除运算的映射,它与加减法类似:可以处理整型和浮点型变量,但在...

在C语言中如何将两个数进行互换
将两个数进行互换的方法有两种形式:1、借助中间变量完成,此方法直观,易理解,使用最多 2、不需要中间变量,通过变量身的运算完成交换。参考代码:方法1:int a=2,b=3,t;t=a; \/\/先将a存储到临时变量t中a=b; \/\/将b存储到a中b=t; \/\/将临时变量中的原a值存储到b中printf("a=%d b=%d...

c语言交换两个数的问题???
。因为对于函数swap()来说,传入的两个地址是值传递形式的,在其内部是局部作用域下的两个变量,完成这两个地址“值”的交换,并不能对调用时的实参产生影响。故而交换失败。另外,再给你个无需中间变量交换两个数值的写法:a = b - a + (b = a); \/\/ 无需中间变量交换a、b的值 ...

c语言中ab两数值交换
将两个数进行互换的方法有两种形式:第一,借助中间变量完成,此方法直观,易理解,使用最多。第二,不需要中间变量,通过变量身的运算完成交换。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能...

c语言交换两个数的问题???
)来说,传入的两个地址是值传递形式的,在其内部是局部作用域下的两个变量,完成这两个地址“值”的交换,并不能对调用时的实参产生影响。故而交换失败。另外,再给你个无需中间变量交换两个数值的写法:a = b - a + (b = a);   \/\/ 无需中间变量交换a、b的值 ...

python交换两个变量的值为什么不用中间变量
使用中间变量,你是说这样吗:再看看不使用中间变量:以上这两个,你觉得哪个简单,哪个代码量少呢?是的,当然是第二个。因为python的宗旨是优雅,简单,高效,不屑于做重复繁杂的操作,当然上面两个都是可以的,但我相信大部分人会选择后者,减少代码量,操作也不复杂,也不是说就不用第一种,根据...

异或异或的巧妙应用
异或运算符“^”在C语言中被用于两个数的位操作。其特性之一是“任何数与自身异或等于零”,即 a ^ a = 0。基于这一特性,我们可以设计出一种不借助中间变量的交换方法。具体步骤如下:1. 将两个变量a和b进行异或运算,结果存储在a中: a = a ^ b。此时a的值为a与b异或的结果,即 a ^...

请问C语言中:a=a-b;b=a+b;a=b-a能实现两数据的交换吗?为什么?
这个绝对能实现2数交换,只有不溢出~~至于为什么~~先看前2个 a=a-b;b=a+b 把第二个中的a用第一个式子表示 即b=(a-b)+b 计算一步 即 b=a;再将第一个和上面的带入第三个中 a=(a)-(a-b) 计算一步 即 a=b;

相似回答