在C语言中如何将两个数进行互换

Python011

在C语言中如何将两个数进行互换,第1张

将两个数进行互换的方法有两种形式:

1、借助中间变量完成,此方法直观,易理解,使用最多

2、不需要中间变量,通过变量身的运算完成交换。

参考代码:

方法1:

int a=2,b=3,t

t=a//先将a存储到临时变量t中

a=b//将b存储到a中

b=t//将临时变量中的原a值存储到b中

printf("a=%d b=%d\n", a,b )

方法2:

int a=2,b=3,t

a += b //把两数之和存到a中

b= a-b //用两数和减去b可得原a,存储到b中

a= a-b //因为b现在是原a值,所以,用两数和减去b(原a)可得 原b,存储到a中

此方法,还可以用异或运算来实现,原理相同。

方法一:三变量交换。

#include<stdio.h>

int main(void)

{

int a,b

scanf("%d%d",&a,&b)

int t=aa=bb=t

printf("%d %d\n",a,b)

return 0

}

方法二:加减交换

#include<stdio.h>

int main(void)

{

int a,b

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(void)

{

int a,b

scanf("%d%d",&a,&b)

a=a^bb=b^aa=a^b//可写成a^=b^=a^=b

printf("%d %d\n",a,b)

return 0

}

方法四(黑盒测试下):不交换

#include<stdio.h>

int main(void)

{

int a,b

scanf("%d%d",&a,&b)

printf("%d %d\n",b,a)

return 0

}