使用c++基本语法,找出整型数组A[n]中的最大值和次最大值
时间: 2024-10-11 09:16:36 浏览: 52
在C++中,你可以使用线性搜索算法遍历整个数组来找出最大的两个值。以下是简单的步骤:
```cpp
#include <iostream>
using namespace std;
// 函数声明
pair<int, int> findMaxAndSecondMax(int arr[], int n);
int main() {
int A[] = {5, 10, 3, 8, 7};
int n = sizeof(A) / sizeof(A[0]);
pair<int, int> maxPair = findMaxAndSecondMax(A, n);
cout << "最大值: " << maxPair.first << ", 次大值: " << maxPair.second << endl;
return 0;
}
// 定义找到最大和次大的函数
pair<int, int> findMaxAndSecondMax(int arr[], int n) {
if (n <= 1) {
// 如果数组只有一个元素或为空,则返回该元素及其自身作为次大值
return make_pair(arr[0], arr[0]);
}
int maxVal = arr[0];
int secondMax = INT_MIN; // 初始化为负无穷,确保更新
for (int i = 1; i < n; ++i) {
if (arr[i] > maxVal) {
// 更新最大值
secondMax = maxVal;
maxVal = arr[i];
} else if (arr[i] > secondMax && arr[i] != maxVal) {
// 更新次大值,但排除最大值
secondMax = arr[i];
}
}
return make_pair(maxVal, secondMax);
}
```
阅读全文