C++题目:描述:输入两个整数a和b,试交换a、b的值。 输入:输入两个整数a和b。 输出:输出a与b交换值后的结果
时间: 2024-10-17 14:12:36 浏览: 112
C++面试题之数a、b的值互换(不使用中间变量)
在C++中,交换两个整数a和b的值通常可以使用临时变量或者不使用额外变量的技巧来完成。以下是两种常见的方法:
**方法一:使用临时变量**
```cpp
#include <iostream>
using namespace std;
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int a, b;
cin >> a >> b; // 输入a和b
cout << "Before swapping: a = " << a << ", b = " << b << endl;
swap(a, b); // 调用函数交换
cout << "After swapping: a = " << a << ", b = " << b << endl;
return 0;
}
```
**方法二:不使用临时变量**
这是一种利用算术运算的技巧,不需要创建额外变量:
```cpp
#include <iostream>
using namespace std;
void swap(int& a, int& b) {
a = a + b; // a暂时等于 a+b
b = a - b; // b现在等于原始的a(因为a已变为a+b)
a = a - b; // a现在恢复为原始的b(因为b已经等于原始的a)
}
int main() {
int a, b;
cin >> a >> b;
cout << "Before swapping: a = " << a << ", b = " << b << endl;
swap(a, b);
cout << "After swapping: a = " << a << ", b = " << b << endl;
return 0;
}
```
阅读全文