两个int变量交换

两个变量int a,int b,不用临时变量过渡,两种方法:

第一种:

a= a+b;

b= a-b;

a= a-b;

第二种:异或的方法,也就是位运算,两个相同的数异或是为0的。

a= a^b;

b=a^b//就等于b=a^b^b;

a=a^b//就等于a=a^b^a

时间: 2024-12-21 09:10:36

两个int变量交换的相关文章

实现两个整数变量交换

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

java实现两个int数交换

普通方法,进阶方法,大神方法 1 @Test 2 public void test3(){ 3 int m = 5; 4 int n = 12; 5 6 //要求m和n交换位置 7 System.out.println("m=" + m + " n=" + n);//m=5 n=12 8 9 //方法一:定义临时变量 10 //优点:操作简单,缺点:需定义临时变量,内存消耗较大 11 int temp = m; 12 m = n; 13 n = temp; 14 S

两个数值变量交换数值的几种方式

1.定义第三方变量 2.用位异或实现(一个数位异或另一个数两次,还得那一个数) 3.用变量相加的做法 4.一步搞定 原文地址:https://www.cnblogs.com/lzpsir/p/12200372.html

C语言: 两个int变量相除,结果保留两位小数

1 #include<stdio.h> 2 void main() 3 { 4 int i=15,j=4; 5 float h; 6 h=(float) (15*100/4)/100; 7 printf("%.2f",h); 8 } 注:%f:不指定宽度,整数部分全部输出并输出6位小数. %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格. %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格. 2.GetTickCount 函数的作用和

已知两个int变量a、b,定义4个方法分别对变量a、b进行加减乘除运算,并测试结果。

package com.fs.test; public class Test { public void aMethod(int a, int b) { int add = a + b;//*表示加法运算 int reduce = a - b;//*表示减法运算 int multiply = a * b;//*表示乘法运算 int divide = a/b;// a对b整除的数 /表示除法,b不能为0 System.out.println("add = " + add); System

交换两个整形变量的数值

#include<stdio.h> void swap(int *p3,int *p4)//定义swap函数,定义两个指针参数 { int t;// 定义一个整形t来做数据交换的中介 t=*p3; *p3=*p4; *p4=t;//3步交换 } main() { int a,b;//定义两个整形变量a,b int *p1,*p2;//定义两个指针变量p1,p2 p1=&a;//指针p1指向a p2=&b;//指针p2指向b printf("输入a,b的值:"

两个变量交换的四种方法

对于两种变量的交换,我发现四种方法,下面我用Java来演示一下. 1.利用第三个变量交换数值,简单的方法. class TestEV //创建一个类 { public static void main(String[]args) { int x =5,y=10; //定义两个变量 int temp = x; //定义第三临时变量temp并提取x值 x = y; //把y的值赋给x y = temp; //然后把临时变量temp值赋给y System.out.println("x="+x

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

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

异或巧妙实现两变量交换

今天在看C语言的位运算时,看到了如下交换a,b两值的方法: a = a^b; b = a^b; a = a^b; 后来想想,真是太神奇了!其实,我们首先知道,对于任意的x满足: x^x == 0; x^0 == x; 那么上面的式子事实上是利用了如上的规则,首先用a保存了a^b的 值,再用b = a ^ b = (a^b)^b=a^b^b=a^(b^b)=a^0=a,这样就成功的实现了b = a:接着又用a = a^b = (a^b)^b(第一个b还是原来的b,而第二个b已经是a的值,因为前面已