您的位置:首页 > 其它

给定两个整形变量的值将两个值的内容进行交换

2018-04-01 13:11 183 查看
1.基本思路:另开辟一个空间i作为媒介,把num1的内容放在i内,把num2的内容放在num1内,再把i内的内容放在num2内,就完成交换。
#include<stdio.h>
#include<windows.h>
int main()

{
int i;
int num1 = 2;
int num2 = 3;
i = num1; num1 = num2, num2 = i;
printf("%d%d\n", num1, num2);
system("pause");
return 0;
}



2,通过加法交换:这个方法不需要重新开辟空间,但是会发生溢出。当num1的内容占满32个字节(2^32-1),再加1就会溢出。
#include<stdio.h>
#include<windows.h>
int main()
{
int num1 = 2;
int num2 = 3;
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;//num1=3+2=5,num2=5-3=2,num1=5-2=3.
printf("%d%d\n", num1, num2);
system("pause");
return 0;
}

3.通过位运算(最优方法):异或的法则是---相同为0,相异为1
#include<stdio.h>
#include<windows.h>
int main()
{
int num1 = 2;
int num2 = 3;
num1 = num1^num2;//010^011=001
num2 = num1^num2;//001^011=010
num1 = num1^num2;//001^010=011
printf("%d%d\n", num1, num2);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐