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

//交换两个变量的值,不使用第三个变量。
//有两种解法, 一种用算术算法, 一种用^(异或) 

//异或:相同为0,不同为1。相当于减法。

#include <stdio.h>

int main()
{
	int a = 8;
	int b = 9;
	printf("初始状态:a = %d, b = %d\n",a,b);

	a = a + b;
	b = a - b;
	a = a - b;
	printf("算数交换:a = %d, b = %d\n",a,b);

	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("异或交换:a = %d, b = %d\n",a,b);

    return 0;
}

时间: 2024-10-06 11:05:51

交换两个变量的值,不使用第三个变量(两种方法)的相关文章

交换两个变量的值(不使用第三个变量)

问题:不使用第三个变量(也不能使用特殊函数),以达到交换变量值的目的?如:int a = 9, b = 10; 有什么办法使得他们交换呢? 办法一:拐弯抹角"相加"之方案语句是这样的: a = a + b; // a = 9 + 10 b = a - b; // b = 19 - 10 a = a - b; // a = 19 - 10然后你就会陡然发现,它的值居然交换了!是不是很不可思议?没错,就是这样拐弯抹角的交换了,如果没见过这种方案的还真一时半会想不出其他办法. 办法二:使用不

【c语言】 &nbsp; 交换两个整形变量的值(要求不创建临时变量)

如何不创建临时变量,来交换两个整形变量的值 异或运算 #include<stdio.h> int main() { int num1=12,num2=24;     printf("交换前的变量值");     printf("%d,%d",num1,num2);       num1=num1^num2;       num2=num1^num2;       num1=num1^num2;//异或  printf("\n交换后的变量值&qu

两列左列浮动,右列自适应宽度的四种方法

第一种方法,网上流传比较广的方法.采用左列 left 浮动,右列不浮动,采用 margin-left 定位的方式.此方法会有一个 ie6 3px bug . 另外,当浏览器框缩小到一定程度时,右侧会掉下来. <!DOCTYPE html> <html> <head> <title>方法一</title> <style type="text/css"> #left {width:100px;height:100px;

JS的变量的值怎么传递给PHP的变量?

get: <script>name="xxx";window.location='xxx.php?name='+name;</script> post: <script>name="xxx";</script><form name=form1 method=post onsubmit="this.name.value=name"><input type=hidden name=&q

Lambda Func&lt;T,TKey&gt; 取值类型时得到字段名的一种方法

@Html.InputTextFor(s => s.name) 取得s.name中的name dynamic exp = expression.Body.GetType().GetProperty("Member").GetValue(expression.Body, null); var strName = (string)exp.Name; strName为name

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

不用新的变量,交换两个变量的值.比如有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 ^

交换两个变量的值的三种实现方式

交换两个变量的值的方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>交换两个变量的值的方式</title> </head> <body> <script> //第一种方式:使用第三方的变量进行交换 var num1 = 11; var num2 = 12; //把

将两个变量中的值进行互换的几种方法

 在做软件开发的过程中,经常需要将两个变量中的数值进行互换.我们可以使用的互换方法有三种. 第一种方法: int a = 3, b = 4;int tmp; tmp = a;a = b;b = tmp;   这种做法,是我们经常用到的做法,就是通过借助第三变量.             优点是:可读性强.             缺点是:引入第三方变量,占用内存大. 第二种方法: int a = 3, b = 4; a = a + b ; // a = 7;   原理是利用两个数的和  a +

JavaScript筑基篇(一)-&gt;变量、值与对象

JavaScript变量.值与对象 说明 JavaScript中变量.值.对象的理解.本文为了简化理解,前半部分暂时刨除与执行上下文的相关概念.另外本文是个人的见解,如有疑问或不正支持,欢迎提出指正和讨论! 目录 前言 参考来源 变量与值 区分变量与值 JS值的两大类型 堆内存与栈内存的区别 值与对象 结合执行上下文理解 前言 参考来源 前人栽树,后台乘凉,本文参考了以下来源 汤姆大叔:变量对象 变量与值 区分变量与值 和所有其它程序语言一样,JavaScript也有变量和值得概念 var a

【javascript】详解变量,值,类型和宿主对象

前言 我眼中的<javascript高级程序设计> 和<你不知道的javascript>是这样的:如果<javascript高级程序设计>是本教科书的话, <你不知道的javascript>就是那本王后雄有以下两点: 1. 老师会教你: 考试最后的准备仍然要“回归课本”2. 在1的前提下并不妨碍我们希望拥有一本好用的“王后雄” JS数据类型 JS类型分类 讲到类型, 首先要说的当然是JS的类型分类, 对于这一点,<javascript高级语言程序设计&