您的位置:首页 > 其它

有两个变量a,b,不使用任何中间变量交换它们

2013-08-20 17:33 253 查看
//--------------------------------
// 环境:VS2005
// 用途:不用中间变量交换两个数
// 时间:2010.9.25
// 作者:http://pppboy.blog.163.com
//--------------------------------
#include "stdafx.h"
#include <iostream>
using namespace std;
//交换a,b
void fSwap1(int& a, int& b)
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
//交换a,b的另一种方法
void fSwap2(int& a, int& b)
{
a = a + b;
b = a - b;
a = a - b;
}
//再一种方法
void fSwap3(int& a, int& b)
{
a = a * b;
b = a / b;
a = a / b;
}
int main(int argc, char* argv[])
{
int a, b;
cout << "------------------------------" << endl;
cout << "input a :" << endl;
cin >> a;
cout << "input b :" << endl;
cin >> b;
cout << "------------------------------" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "------------------------------" << endl;
fSwap1(a, b);
cout << "after swap (1):" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
fSwap2(a, b);
cout << "after swap (2):" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
fSwap3(a, b);
cout << "after swap (3):" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
system("pause");
return 0;
}


结果为:
------------------------------
input a :
32
input b :
65
------------------------------
a = 32
b = 65
------------------------------
after swap (1):
a = 65
b = 32
after swap (2):
a = 32
b = 65
after swap (3):
a = 65
b = 32
请按任意键继续. . .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: