您的位置:首页 > 其它

交换两个变量的值的多种方法

2016-11-21 22:41 239 查看
交换两个变量的值也可以算一个经典的问题了,下面给出了多种方式。

重点的话就理解前面三种,后面三种的话就YY,当然还有其他的方法,也没有必要再列举了。

代码:

/**
* 行有余力,则来刷题!
* 博客链接:http://blog.csdn.net/hurmishine
*
*/
#include <iostream>
#include <cstdio>
using namespace std;

void swap1(int *x,int *y)
{
int t=*x;
*x=*y;
*y=t;

}
void swap2(int &x,int &y)
{
int t=x;
x=y;
y=t;
}
void swap3(int &x,int &y)
{
x=x^y;
y=y^x;
x=x^y;
}
void swap4(int &x,int &y)
{
x=x+y;
y=x-y;
x=x-y;
}
void swap5(int &x,int &y)
{
//x=10,y=50
x=y-x;//x=50-10=40
y=y-x;//y=50-40=10
x=y+x;//x=10+40=50
}
void swap6(int &x,int &y)
{
x=x*y;
y=x/y;
x=x/y;
}
int main()
{
int x=10,y=50;
cout<<"x="<<x<<",y="<<y<<endl;
swap1(&x,&y);
cout<<"x="<<x<<",y="<<y<<endl;
swap2(x,y);
cout<<"x="<<x<<",y="<<y<<endl;
swap3(x,y);
cout<<"x="<<x<<",y="<<y<<endl;
swap4(x,y);
cout<<"x="<<x<<",y="<<y<<endl;
swap5(x,y);
cout<<"x="<<x<<",y="<<y<<endl;
swap6(x,y);
cout<<"x="<<x<<",y="<<y<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息