c++交换最大值和最小值
时间: 2024-11-07 13:11:21 浏览: 29
在 C++ 中,交换两个变量的最大值和最小值可以采用多种方法,这里提供一种简单的算法示例。假设我们有两个整数 `a` 和 `b`,我们可以利用临时变量 `temp` 来完成这个操作:
```cpp
int a, b; // 假设已知的两个数值
// 获取当前的最小值和最大值
if (a < b) {
int min = a;
int max = b;
} else {
int min = b;
int max = a;
}
// 使用临时变量交换最大值和最小值
temp = max;
max = min;
min = temp;
// 最终,a 将保存原最大值,b 将保存原最小值
```
如果你想对数组内的元素进行类似的操作,你可以遍历整个数组并保持 track 当前找到的最小值和最大值:
```cpp
#include <algorithm> // 需要用到 std::min 和 std::max 函数
void swapMinMax(int arr[], int size) {
int min_val = arr[0], max_val = arr[0];
for (int i = 1; i < size; ++i) {
if (arr[i] < min_val) {
min_val = arr[i];
} else if (arr[i] > max_val) {
max_val = arr[i];
}
}
// 对数组进行原地交换
int temp = min_val;
min_val = max_val;
max_val = temp;
arr[0] = min_val;
arr[1] = max_val;
}
```
阅读全文