用c++实现输入两个整数,然后将两个数对调后输出(不可使用第三个变量)
时间: 2024-09-10 15:26:52 浏览: 53
在C++中,可以通过加减法或者位运算来实现两个整数的对调而不使用第三个变量。下面是使用加减法实现的方法示例:
```cpp
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "请输入两个整数:" << endl;
cin >> a >> b;
// 使用加减法交换两个数
a = a + b; // a中存储了两个数的和
b = a - b; // b变成了原来的a
a = a - b; // a变成了原来的b
cout << "对调后的两个数是:" << endl;
cout << a << " " << b << endl;
return 0;
}
```
这种方法的前提是两个整数的和不会导致整数溢出。如果`a`和`b`的和超过了整数类型可以表示的最大范围,那么这种方法就不适用了。
另一种方法是使用位运算:
```cpp
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "请输入两个整数:" << endl;
cin >> a >> b;
// 使用位运算符异或(XOR)交换两个数
a = a ^ b; // a中存储了a和b的异或结果
b = a ^ b; // b变成了原来的a
a = a ^ b; // a变成了原来的b
cout << "对调后的两个数是:" << endl;
cout << a << " " << b << endl;
return 0;
}
```
使用异或运算对两个数进行对调,这种方法不需要考虑整数溢出的问题,因为异或操作不会改变整数的总和。但是要注意,对同一个数进行两次异或操作会得到原来的值,这是实现对调的关键。
阅读全文