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

Posted 勿忘初心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不用中间的变量交换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;
}

  

以上是关于不用中间的变量交换A和B的值(摘)的主要内容,如果未能解决你的问题,请参考以下文章

不用中间变量交换两个数值变量的值

PHP不用第三变量交换2个变量的值的解决方法

通过位异或来交换a,b的值和通过中间变量交换a,b的值

Java千问:Java位运算经典应用

实现两个变量的值交换的三种方法(两种方法不使用中间变量)

JavaScript不用临时变量交换两个变量的值的七种解决方案