c语言 交换2个数的值

原创 2015年07月09日 13:25:19

除了使用变量temp交换两个数以外,还有以下两种不常用的方法,很给力

void changeTwoNum(int a,int b){

    printf("交换前a=%d  b=%d\n",a,b);

    

    //1,加减法(可能溢出)

    a = b - a ;

    b = b - a;

    a = b + a;

    

    //2,按位异或

    a = a^b;

    b = a^b;

    a = a^b;

    printf("交换后a=%d  b=%d",a,b);

    

}


C语言 用异或(^)交换2个数,不用其他变量

#include #include #include int n; int data[10]; void change(int &a,int &b) { a^=b;b^=a;a^=b; ...
  • KPRF2009
  • KPRF2009
  • 2012年04月07日 04:23
  • 1483

c语言中不需要中间变量就能实现两个数交换的几种算法

第一类方法也是常用的方法,通过多次的数值计算来完成交换,到现在知道的有下面三种: (1)加减法。 a = a + b; b = a - b; a = a - b; 该方法可以交换整型和浮点型...
  • Mormont
  • Mormont
  • 2016年12月17日 22:07
  • 1851

面试题:交换2个数字,要求高效快速.(可用三种方式实现交换2个数字)

交换2个数字一般有三种方式: 第一种是利用一个三方变量temp作为临时变量交换 第二种是利用a+b,a-a之类的方式交换(a+b可能会溢出) 第三种是利用异或运算方式告诉的交换数字 packa...
  • u012110719
  • u012110719
  • 2015年06月06日 18:56
  • 1053

java(引入一个中间变量,不引入中间变量)交换两个变量的值

一、描述 在不引入其它变量的情况下交换两个数,引入一个变量做中介,交换两个数的值,第一种是引入一个临时变量,第二种是将两个数的和存放在其中一个变量中,第三种方法是使用异或运算,一个数异或上任意一个数两...
  • tongyuehong
  • tongyuehong
  • 2015年04月18日 23:00
  • 2230

不用临时的变量 交换两个数的两种方法

就地交换两个数是比较经典而且基础的算法之一。 我们要交换两个数字,通常的做法就创建一个中间变量,然后进行循环赋值,比如说下面的代码: void Switch(int* p1, int* p2) {...
  • a253664942
  • a253664942
  • 2015年05月09日 16:47
  • 2366

C++交换两个数总结

习题:实现两个整数的交换。方法1:设置中间变量#include using namespace std; int main() { int a,b,c; coutb; c = ...
  • JIEJINQUANIL
  • JIEJINQUANIL
  • 2016年03月26日 00:26
  • 3767

异或运算实现两个数的交换

通常的交换两个变量a,b的过程为 int temp; temp=a a=b; b=temp; 需借助上面的第3个临时变量temp. 采用下面的方...
  • heathyhuhu
  • heathyhuhu
  • 2013年10月15日 08:32
  • 13113

C++ 引用 (交换两个数的值)

C++中引用能够将很多问题在同级上解决,不会开辟新的空间。 在C中是没有引用这个定义的,这也是C++中的一个特色。 通过一个swap函数来简单的了解引用。 /*****************...
  • blank__box
  • blank__box
  • 2016年11月09日 12:10
  • 1060

Java中两个数交换的细节问题

在码代码过程中,两个数交换是经常用到的,但在Java 中,如果忽略了值传递和引用传递就很容易出错。 看一下两个整数交换代码: public void swap(int a,int b){ int t=...
  • Mars_NAVY
  • Mars_NAVY
  • 2014年04月21日 09:29
  • 3486

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

如果要交换两个变量的值,我们首先想到的就是定义一个第三方变量暂存其中一个变量的值:                   如果我们不使用第三方变量怎么交换两个变量的值呢?          ...
  • pt666
  • pt666
  • 2017年04月23日 19:59
  • 646
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言 交换2个数的值
举报原因:
原因补充:

(最多只允许输入30个字)