码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-10-31 18:38:56      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:sha   highlight   数值   出现   blog   精度   log   stdio.h   不为   

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;
}

  

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

标签:sha   highlight   数值   出现   blog   精度   log   stdio.h   不为   

原文地址:http://www.cnblogs.com/oralig/p/7762619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!