c语言思考题,不设新的变量,交换ab的内容

想必大家看的这个题就一定想到了种最简单的解法那就是求和交换

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


运用这种方法可以在没有第3个变量出现的情况下交换a,b位置。

但这种做法是有一定错误的,那就是存在溢出现象。

为了避免溢出的产生我们要采用以下方法

#include <stdio.h>//不通过另一个变量,交换ab位置
int main()
{
	int a=3;
	int b=4;
	a=a^b;
	b=a^b;
	a=a^b;
	printf("%d %d",a,b);
}

这种方法既避免了溢出,又交换了ab的位置,非常巧妙。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值