c++ 写完整代码找出整形数组中最大值和次最大值
时间: 2024-09-29 10:06:46 浏览: 23
当然可以。在 C++ 中,你可以通过以下方式编写一个完整的函数来找到整数数组中的最大值和次大值。这里我们假设数组不为空,并且数组元素都是非负整数。
```cpp
#include <iostream>
using namespace std;
void findMaxAndSecondMax(int arr[], int n) {
if (n <= 1) {
cout << "Array should have at least two elements." << endl;
return;
}
// 初始化最大值和次大值为数组的第一个元素
int max_val = arr[0], second_max = arr[0];
// 遍历数组寻找最大值和次大值
for (int i = 1; i < n; ++i) {
if (arr[i] > max_val) { // 如果当前元素大于最大值
second_max = max_val; // 更新次大值
max_val = arr[i]; // 更新最大值
} else if (arr[i] > second_max && arr[i] != max_val) { // 如果当前元素不是最大值但比次大值大
second_max = arr[i];
}
}
cout << "The maximum value is: " << max_val << endl;
cout << "The second maximum value is: " << second_max << endl;
}
// 测试代码
int main() {
int arr[] = {5, 10, 15, 8, 20};
int size = sizeof(arr) / sizeof(arr[0]);
findMaxAndSecondMax(arr, size);
return 0;
}
```
在这个代码中,`findMaxAndSecondMax` 函数接收一个整型数组 `arr` 和它的长度 `n`。如果数组只有两个或更少的元素,我们会给出提示并返回。然后,它遍历整个数组,比较每个元素与当前的最大值和次大值,更新它们。最后,在主函数 `main` 中,我们创建了一个示例数组并调用了这个函数。
阅读全文