如何不使用第三个变量来交换两个数的值

如题所述

异或
a ^= b
b ^= a
a ^= b
这样就交换了ab的数值
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-09-05
int 的话就+后再减.string 的话就连接再截取.

如何不使用第三个变量来交换两个数的值
a = a + b;b = a - b;a = a - b;这样就行了,前提是a和b不能是太大或太小的数,怕a+b越界

如何不使用第三个变量来交换两个数的值?
a=(int*)(b+int(a)); \/\/&a=0x00001200h,&b=0x00001000h 因为对地址的操作实际上进行的是整数运算,比如:两个地址相减得到一个整数,表示两个变量在内存中的储存位置隔了多少个字节;地址和一个整数相加即“a+10”表示以a为基地址的在a后10个a类数据单元的地址。所以理论上可以通过和算术算...

...不用第三个变量,也不用任何函数来交换两个数的值.
用异或操作就可以交换两个数了( ^ 就是异或操作)b = a ^ b;a = a ^ b;b = a ^ b;因为:a ^ b ^ b = a,这是异或的一个特性 如果异或用于或非表示的话,就是:a ^ b = (a or b) and (!a or !b)注:a or b 表示"a 或 b"a and b 表示"a 与 b"!a 表示 "...

如何在不使用第三个变量的情况下交换两个数的值
a=1;b=2;c=a;a=b;b=c 通过这样的方式来达到交换a和b的值。那么如何在不使用第三个变量的情况下交换两个数的值呢?以下有一个方法:我们还是令a=1,b=2,所以a

java中交换两个数的值,不出现第三个变量,初学者,求完整程序
创建一个类,在该类中定义两个变量并为其指定初始值,然后交换两个变量的值,要求不允许借助第三个变量,只能使用异或运行实现两个变量值的交换。你可以参考一下以下方法import java.util.Scanner;public class VariableExchange { public static void main(String[] args){ System.out.println("...

不用第三个变量,将变量a和b的值进行互换的操作是什么
a=a+b; b=a-b; a=a-b; 输出a和b,就是交换后的结果 采纳哦

有a b两个变量,要求不使用第三个变量,交换a b的值,用c语言这么写?
a=a+b这个得到的是a和b的和;也就是这一步运行之后当前的a的值就是a,b之和。b=a-b,既然a是他们两个的和,那么a-b得出的肯定是最初的a的值;这一步运行之后,b的只就是原始a的值;a=a-b,既然b是原始a的值,a是原始a和原始b的和,那么差值肯定就是原始b的值。

下面程序的功能是不用第三个变量,实现两个数的对调操作.
答案是对的,的确交换了a,b的值。可以这么理解:令scanf读入两个整数为x和y,并分别赋值给a,b。此时a=x,b=y。①:a = a + b = x + y;②:b = a - b = ( x + y ) - y = x;③:a = a - b = ( x + y ) - x = y;...

编程C语言,交换两个变量的值,要求:运行如下:结果变量交换前a=2,b=3...
不使用第三个变量的算术运算交换方法:int a=2, b=3;a=b-a; b=b-a; a=b+a;不使用第三个变量的 位运算交换法:int a=2, b=3;a=a^b; b=a^b; a=a^b;使用第三个变量的算术运算交换方法:int a=2, b=3, c;c = a; a=b; b=c;...

怎样交换两个数字的数值不懂:t=x,x=y,y=t求解!谢谢
例如x=1;y=2;t=x;将x的值赋给t,t变为1,xy不变为1和2 x=y;将y的值赋给x,x变为2;y不变;此时t=1;x=2;y=2;y=t; 将t的值赋给y,y变为1;此时x=2;y=1;t=1;t只是一个中间变量

相似回答