有两个变量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
请按任意键继续. . .
相关文章推荐
- 如何不使用任何中间变量交换两个变量的值
- 面试题-不使用任何中间变量交换两个值的大小
- 如何将a、b的值进行交换,并且不使用任何中间变量
- 不使用第三方中间变量交换两个变量
- java算法4~交换两个整数,不能使用任何额外的变量
- 题目要求:将a,b两个数的值进行交换,并且不使用任何的中间变量。
- 不使用任何中间变量如何将a、b的值进行交换
- 如何将a、b的值进行交换,并且不使用任何中间变量?
- 变量交换 如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡, 但也可以在不借助任何其它变量的情况下完成。
- 如何将a,b的值进行交换,并且不使用任何中间变量
- 使用位运算实现判断一个数是否是2的n次方,实现不需要中间变量进行两个变量值的交换
- 一面试题:不用任何中间变量,完成两个int型的交换。
- 使用交换函数交换两个变量的值(以int类型为例)的错误用法以及正确用法
- 不使用中间变量,交换int型的 a, b两个变量的值。
- 交换两个变量的值,不使用第三个变量
- 不定义中间变量,交换两个整形变量的值
- 不使用别的变量交换两个变量的值
- 交换两个变量的值不使用第三个变量(Java)
- 不使用第三方变量交换两个参数的值
- [c语言笔记]关于指针操作中使用异或交换两个变量的值