本帖最后由 雪寒 于 2014-11-4 19:39 编辑
int a = 1,b = 2;
大家可以用几种方法来交换a、b的值呢?我总结了三种方法,与大家共享。- #include <stdio.h>
- int main()
- {
- //第一种方法:通过引入第三个变量
- int a = 1,b=2;
- printf("第一种方法\n");
- printf("交换前:a = %d,b = %d\n",a,b);
- int temp;
- temp = a;
- a = b;
- b = temp;
- printf("交换后:a = %d,b = %d\n",a,b);
- //第二种方法:通过加减运算
- a = 1;
- b = 2;
- printf("第二种方法\n");
- printf("交换前:a = %d,b = %d\n",a,b);
- a = b - a;
- b = b - a;
- a = b + a;
- printf("交换后:a = %d,b = %d\n",a,b);
- //第三种方法:通过异或运算
- a = 1;
- b = 2;
- printf("第三种方法\n");
- 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;
- }
复制代码 运行结果:第一种方法
交换前:a = 1,b = 2
交换后:a = 2,b = 1
第二种方法
交换前:a = 1,b = 2
交换后:a = 2,b = 1
第三种方法
交换前:a = 1,b = 2
交换后:a = 2,b = 1
|