交换两个数的值
-
方法一:(创建临时变量来交换两个数的值)
tem=a;
a=b;
b=tem;
-
方法二:(不创建临时变量)
a=a+b; a 10~30 b 20
b=a-b; a 30 b 20~10
a=a-b; a 30~20 b 10
缺点:a+b有可能溢出
-
方法三:按二进制位异或
(两个二进制位相同为0.相异为1)
a=a^b;
预备知识:
a ->01010
b ->10100
a^b ->11110
->01010 a
->10100 b a和b的交换
b=a^b;
a=a^b;
源代码:(这里我只贴了第一种方法的源码,其他方法换相应的代码块即可)
#include<stdio.h>
#include<stdlib.h>
int main(){
int a = 10;
int b = 20;
printf("a=%d b=%d\n", a, b);
int tem = a;
a = b;
b = tem;
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}