交换变量的值

方法一:借助第三方变量

 1 #region 1 利用第三方变量
 2             int a = 10;
 3             int b = 20;
 4             Console.WriteLine("交换前的值:a={0},b={1}", a, b);
 5             Console.ReadKey();
 6             int temp = a;
 7             a = b;
 8             b = temp;
 9             Console.WriteLine("交换后的值:a={0},b={1}", a, b);
10             Console.ReadKey();
11             #endregion

方法二:不借助第三方变量

  1)加减法

 1 #region 2 不利用三方变量 (加减法)
 2             int a = 10;
 3             int b = 20;
 4             Console.WriteLine("交换前的值:a={0},b={1}", a, b);
 5             Console.ReadKey();
 6             a = a + b;   //30
 7             b = a - b;   //10
 8             a = a - b;   //20
 9             Console.WriteLine("交换后的值:a={0},b={1}", a, b);
10             Console.ReadKey();
11             #endregion

  2)异或运算

 1 /*
 2              *分析:数字变为二进制在进行异或运算[0^1 = 1 ,0^0=0 1^1=0]
 3              *10  ==> 01001   ==>a
 4              *20  ==> 10100   ==>b
 5              * a^b
 6              * 01001
 7              * 10100
 8              * 11101   ==> a
 9              * 10100
10              * 01001   ==>b(10)
11              * 11101
12              * 10100   ==>a(20)
13              */
14             int a = 10;
15             int b = 20;
16             Console.WriteLine("交换前:a={0},b={1}", a, b);
17             Console.ReadKey();
18             a = a ^ b;
19             b = a ^ b;
20             a = a ^ b;
21             Console.WriteLine("交换后:a={0},b={1}", a, b);
22             Console.ReadKey();

时间: 2024-10-06 14:26:23

交换变量的值的相关文章

不使用中间变量,交换变量的值。求一个数二进制中1的个数

1.给定两个整形变量的值,将两个值的内容进行交换.2. 不允许创建临时变量,交换两个数的内容(附加题)3. 求10 个整数中最大值.4. 写一个函数返回参数二进制中 1 的个数比如: 15       0000 1111       4 个 1程序原型:int  count_one_bits(unsigned int value){       // 返回 1的位数 } #include<stdio.h>#include<stdlib.h>void exchange(int *nu

python基础(内存分析,不引入第三方变量的方式交换变量的值)

a,b指向同一块内存地址 下面方法是重新给b赋值;a,b指向不同的内存地址 字符串或int类型内存分析 不引入第三方变量的方式,交换a,b的值 原文地址:https://www.cnblogs.com/jingw/p/9188511.html

【好程序员笔记分享】C语言之交换变量的值

ios培训------我的c语言笔记,期待与您交流! #include <stdio.h> /* a = 10 b = 11 交换之后 a -> 11 b -> 10 1.利用第三方变量(工作,掌握) int temp = a; a = b; b = temp; 2.不利用第三方变量(面试) a = b - a; b = b - a; a = b + a; */ int main() { int a = 10; int b = 11; /* int temp = a; a = b;

不借助任何中间变量将两个整形变量的值交换

今天在做题的时候,突然出现一道题,就是不借助中间变量,将两个整形变量的值互换,开始有点懵,这怎么换?后来还是用两个变量不停做加减变换,差不多有十几分钟,才终于凑出来了一种方法,一时兴起,我又从网上找了一下相关的资料,说是竟然有四种方法,我就看了一下,顺便学习一下. 在我们初学阶段,一般是定义一个新的变量,借助它完成交换. 例如:int a,b;a=1; b=2;int t;t=a; a=b; b=t;这种算法易于理解,对初学者来说,一般都是用“空瓶子来回倒换”帮助理解的,而且是赋值语句的经典应用

不用新的变量,交换两个变量的值。

不用新的变量,交换两个变量的值.比如有2个变量a , b ,我们希望交换他们的值. 下面介绍两种不同的解法: 第一种:基于加减法 a = a + b ;   //先让a等于和 b = a - b ;  //和减去原来b的值得到原来a的值,赋值给b a = a - b : //和减去改变后b的值(原来a的值)得到原来b的值,赋值给a 第二种:基于异或运算 a = a ^ b  // 先a异或上b,赋值给a b = a ^ b  // a异或上b,消去b的影响得到原来的a,赋值给b a = a ^

(转)交换两个变量的值,不使用第三个变量的四种法方

通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用.在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法). 上面的算法最大的缺点就是需要借助一个临时变量.那么不借助临时变量可以实现交换吗?答案是肯定的!这里我们可以用

交换两个变量的值,不使用第三个变量的四种法方

通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下:int a,b;a=10; b=15;int t;t=a; a=b; b=t;这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用.在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法). 上面的算法最大的缺点就是需要借助一个临时变量.那么不借助临时变量可以实现交换吗?答案是肯定的!这里我们可以用三种算法来

JAVA不用临时变量交换两个变量的值

交换两个变量的值,不适用临时变量 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6 } 7 } 交换两变量的值 加减实现交换 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6

PHP不用第三变量交换2个变量的值的解决方法

以前做过一道php面试题是这样的:不使用第三个变量实现交换两个变量的值.一般都是借助第三个中间变量来实现原来两个变量的值交换,但是这道题却要求不能使用中间变量,这对于初学者来说也算是一个难题了.网上找到的几种方法总结如下: 复制代码 代码如下: //字符串版本 结合使用substr,strlen两个方法实现 $a="a";$b="b";echo '交换前 $a:'.$a.',$b:'.$b.'<br />';$a.=$b;$b=substr($a,0,(