1、 定义临时变量,交换两个数 #include <iostream> #include <cstdio> using namespace std; int main() { int a,b; cin>>a>>b; printf("before swap a=%d,b=%d\n",a,b); int temp; temp=a; a=b; b=temp; printf("after swap a=%d,b=%d\n",a,b); return 0; } 2、 不使用临时变量,直接使用加减法交换 #include <iostream> #include <cstdio> using namespace std; int main() { int a,b; cin>>a>>b; printf("before swap a=%d,b=%d\n",a,b); a=a+b; b=a-b; a=a-b; printf("after swap a=%d,b=%d\n",a,b); return 0; } 3、不使用临时变量,直接使用异或运算。位运算是可逆的,比如 x^y=z y^z=x #include <iostream> #include <cstdio> using namespace std; int main() { int a,b; cin>>a>>b; printf("before swap a=%d,b=%d\n",a,b); a=a^b; b=a^b; a=a^b; printf("after swap a=%d,b=%d\n",a,b); return 0; }
|