c语言 2个整数的交换 用两个变量来实现

第1种 常规的方法 借助于中间变量t来实现。

#include<stdio.h>
int main()
{
int a,b,t;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}

第2中 加法 与 乘法 仅用2个变量来实现

#include<stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}

乘法与其类似 只需要 稍微改动一下即可

#include<stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
a=a*b;
b=a/b;
a=a/b;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}

第3种 用异或来实现两个变量的交换

^异或运算符 :两个数相同为0,不同为1 ,且当一个数异或上2次相同的数后,原数不变,就是说4^5^5其结果还是4

#include<stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
a=a^b;
b=a^b;
a=a^b;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}

本人,也是一名刚学习计算机的在校大学生,想尽量把老师上课讲的知识整理下来,方便以后自己来看,如果有什么不正确的地方,欢迎指出。

最后呢,老师还提到了一种借助于位移运算符的方法,但是自己还不是特别了解就没有写上,不过这个代码我给记下来了,主要的程序代码是b=(_int64)((_int64)a<<32|(a=b))>>32;如果有兴趣的可以写写看看啦。









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值