不用中间的变量交换A和B的值(摘)

1、加减法:该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失

a = a + b;

b = a - b;

a = a - b;

2、异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换。

a = a^b;

b = a^b;

a = a^b;

3、乘除法:可以处理整型和浮点型变量,但在处理浮点型变量时也存在精度损失问题。而且乘除法比加减法要多一条约束:b必不为0。

a = a * b

b = a / b

a = a / b

 

#include<stdio.h>
int main()
{
    int a = 1;
    int b = 2;
    //方法一:
    a = a + b;
    b = a - b;
    a = a - b;
    //方法二:
    a = a * b;
    b = a / b;
    a = a / b;
    //方法三:
    a = a^b;
    b = a^b;
    a = a^b;
    printf("a = %d\t,b =%d\n",a,b);
    return 0;
}

  

posted @ 2017-10-31 17:25  橘子拾光  阅读(252)  评论(0编辑  收藏  举报