写一个c++程序交换数组中的最大和最小值
时间: 2024-10-23 10:10:42 浏览: 50
在C++中,我们可以创建一个简单的函数来交换数组中的最大值和最小值。这里有一个基本的示例:
```cpp
#include <iostream>
using namespace std;
// 函数声明,接受一个整数指针作为参数
void swapMinMax(int* arr, int size) {
if (size >= 2) { // 至少需要两个元素才能比较
int min_val = *arr;
int max_val = *arr;
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[size - 1] = max_val;
}
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Before swapping: ";
for (int i : arr) {
cout << i << " ";
}
swapMinMax(arr, size);
cout << "\nAfter swapping: ";
for (int i : arr) {
cout << i << " ";
}
return 0;
}
```
在这个例子中,`swapMinMax`函数遍历数组找到最小和最大的值,然后将它们互换。注意,这个函数假设输入数组至少有两个元素,并且没有在内部排序。如果数组只有一个元素或者全是相同的数值,那么这个方法就不适用了。
阅读全文