第一种方法:
创建一个临时变量,实现两个数的交换
#include<stdio.h> int main() { int a = 10; int b = 20; int tmp; tmp = a; a = b; b = tmp; printf("%d %d", a, b); system("pause"); return 0; }
第二种方法:
用数学的思想,
#include<stdio.h> int main() { int a = 10; int b = 20; a = a + b;//a += b ;此时的a为a与b的和 b = a - b;//所以b=a+b-b,就相当于把a给了b a = a - b;//a -= b;而此时的b已经存了a,a=a+b-a,就相当于把b存给了a printf("%d %d", a, b); system("pause"); return 0; }
第三种方法:(最优解)
用异或(^)实现,
#include<stdio.h> int main() { int a = 10; int b = 20; a = a ^ b;//a^=b; b = a ^ b;//b^=a;//此时b=a^b^b=a,所以即为把a赋给b a = a ^ b;//a^=b;//同理 printf("%d %d", a, b); system("pause"); return 0; }