您的位置:首页 > 编程语言 > C语言/C++

用C语言实现两个值交换的四种方法

2018-03-26 00:13 363 查看
四种用C语言实现交换两个数的方法 :
方法一:借助第三个变量,以实现两个数的交换。
#include<stdio.h>
int main()
{
int a,b,temp;
scanf("%d %d",&a,&b);
printf("交换前:a=%d , b=%d\n",a,b);
temp = a;
a = b;
b = temp;
printf("交换后:a=%d , b=%d\n",a,b);
return 0;
}

方法二:两个数之间进行加减运算,以实现两个数的交换。#include<stdio.h>
int main()
{
int a,b,temp;
scanf("%d %d",&a,&b);
printf("交换前:a=%d , b=%d\n",a,b);
a = a+b;
b = a-b;
a = a-b;
printf("交换后:a=%d , b=%d\n",a,b);
return 0;
}

方法三:将两个数进行异或运算,最终实现两个数的交换。(这是在二进制运算的基础上进行的)#include<stdio.h>
int main()
{
int a,b,temp;
scanf("%d %d",&a,&b);
printf("交换前:a=%d , b=%d\n",a,b);
a = a^b;
b = a^b;
a = a^b;
printf("交换后:a=%d , b=%d\n",a,b);
return 0;
}
方法四:对这两个数进行位运算,以实现两个数的交换。(也是基于二进制运算的基础,但是不适用于太大的数字)
#include<stdio.h>
int main()
{
int a,b,temp;
scanf("%d %d",&a,&b);
printf("交换前:a=%d , b=%d\n",a,b);
a = a<<8;
a = a+b;
b = a>>8;
a = a&0xff;
printf("交换后:a=%d , b=%d\n",a,b);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  两个值交换 C语言