爱问 爱问共享资料 医院库

怎样交换变量

首页

怎样交换变量

fund(int *x,int *y) 
{*x=*x+*y; *y=*x-*y; *x=*x-*y; }
交换变量的原理是什么

提交回答
好评回答
  • 2008-05-31 12:18:32
    简单来说,就是通过普通的+和-运算来实现。代码如下: 
    int a,b; 
    a=10;b=12; 
    a=b-a; //a=2;b=12 
    b=b-a; //a=2;b=10 
    a=b+a; //a=10;b=10 
    通过以上运算,a和b中的值就进行了交换。表面上看起来很简单,但是不容易想到,尤其是在习惯标准算法之后。 
    它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。 
    具体过程:第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a=b+a”求出b到原点的距离(a到原点距离与ab两点距离之和),并且将其保存在a中。完成交换。 
    此算法与标准算法相比,多了三个计算的过程,但是没有借助临时变量

    夏天的雪

    2008-05-31 12:18:32

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

爱问推荐

  • 1-20
  • 21-40
  • 41-60

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):