交换最小值和最大值c++
时间: 2024-12-12 20:05:02 浏览: 22
在C++中,你可以使用两个变量分别存储数组的最大值和最小值,然后通过简单的比较操作来交换它们。这里有一个简单的示例,假设你有一个整数数组`arr[]`,长度为`n`:
```cpp
#include <iostream>
// 函数声明,接受一个整数数组的引用和大小作为参数
void swapMinMax(int arr[], int n) {
// 如果数组为空或只有一个元素,无需交换
if (n <= 1)
return;
// 初始化最大值和最小值
int max = arr[0];
int min = arr[0];
// 遍历数组找到最大值和最小值
for (int i = 1; i < n; i++) {
if (arr[i] > max)
max = arr[i];
else if (arr[i] < min)
min = arr[i];
}
// 交换最大值和最小值
int temp = max;
max = min;
min = temp;
// 将找到的新最大值和最小值放回原数组
for (int i = 0; i < n; i++) {
if (arr[i] == max)
arr[i] = min;
else if (arr[i] == min)
arr[i] = max;
}
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int n = sizeof(arr) / sizeof(arr[0]);
std::cout << "Before swapping: ";
for (int i : arr)
std::cout << i << " ";
swapMinMax(arr, n);
std::cout << "\nAfter swapping: ";
for (int i : arr)
std::cout << i << " ";
return 0;
}
```
在这个例子中,`swapMinMax`函数会找出数组中的最大值和最小值,然后用一个临时变量`temp`进行交换。最后,在主函数中调用这个函数并打印出交换后的结果。
阅读全文