赞
踩
题解:两个数的交换(第三变量 + 数学求和 + 异或法)
题目如下:请交换两个整形变量的数值,且不使用第三临时变量
int a = 10;
int b = 20;
printf("swap before: a = %d; b = %d", a, b);
int temp = a;
a = b;
b = temp;
printf("swap later: a = %d; b = %d", a, b);
优点:常规且效率高
缺点:借用第三临时变量
int a = 10;
int b = 20;
printf("swap before: a = %d; b = %d", a, b);
a = a + b;
b = a - b;
a = a - b;
printf("swap later: a = %d; b = %d", a, b);
缺点:溢出风险
int a = 10;
int b = 20;
printf("swap before: a = %d; b = %d", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("swap later: a = %d; b = %d", a, b);
缺点:
EOF
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。