两个整数交换(不引入第三个变量)

来源:互联网 发布:数组如何接受数据 编辑:程序博客网 时间:2024/06/05 14:19

int a, b;

 

if (a*b >0)

   {

    /* a,b同正或同负 */

    a=a-b;   // a=a0-b0   (a0,b0代表原来的值)

    b=a+b;  // b=a0-b0+b0=a0

    a=b-a;  //  a=a0-(a0-b0)=b0

    }

elseif(a*b<0)

    {

    a=a+b;   // a=a0+b0

    b=a-b;    // b=a0+b0-b0=a0

    a=a-b;    // a=a0+b0-a0=b0

    }

elseif(a==0)

{

a=b;

b=0;

}

else // b==0

{

 b=a;

 a=0;

}     

 

  ***只所以判断a,b是否同正负,是为了避免在计算过程中出现溢出问题!

原创粉丝点击