不用临时变量交换a,b值的三种方法

交换a,b值的三种方法

第一种:普通的用第三个参数交换两者数值:

#include <stdio.h>
 int main()
 {
  int a = 10;
  int b = 20;
  int temp;//设置第三个变量
  temp = a;
  a = b;
  b = temp;
  printf(“a=%d,b=%d",a,b);
  return 0;
 }

这种方法的优点是极其稳定,几乎不用担心越界等一系列错误
但是如何不用这个临时变量达到交换二者数值的目的呢?

第二种:先相加后相减的方法

#include <stdio.h>
int main()
{
 int a = 10;
 int b = 20;
 a = a + b;
 b = a - b;
 a = a - b;
  printf("a = %d,b = %d",a,b);
  return 0;
}

这种方法的优点是没有临时变量且较为稳定
缺点是有可能涉及到溢出但是可能性很小。

第三种:抑或抑或抑或

#include <stdio.h>
int main()
{
 int a = 10;
 int b = 20;
 a = a ^ b;
 b = a ^ b;
 a = a ^ b;
  printf("a = %d,b = %d",a,b);
  return 0;
}

这种方法的有点是:比较高端
缺点是出错的概率相较于第二种方法更大

如果帮到你的话请关注我!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值