使用C++找出数组中最大值和第二大值,并记录最大值和第二大值的位置的代码实现
时间: 2024-02-13 16:04:56 浏览: 40
可以使用两个变量来分别记录最大值和第二大值,再分别记录它们的位置。
以下是一种可能的实现方式:
```c++
#include <iostream>
using namespace std;
int main()
{
int arr[] = { 5, 3, 9, 1, 7 };
int n = sizeof(arr) / sizeof(arr[0]);
int maxVal = arr[0], maxPos = 0;
int secMaxVal = arr[0], secMaxPos = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > maxVal) {
secMaxVal = maxVal;
secMaxPos = maxPos;
maxVal = arr[i];
maxPos = i;
} else if (arr[i] > secMaxVal) {
secMaxVal = arr[i];
secMaxPos = i;
}
}
cout << "Max value: " << maxVal << ", position: " << maxPos << endl;
cout << "Second max value: " << secMaxVal << ", position: " << secMaxPos << endl;
return 0;
}
```
输出为:
```
Max value: 9, position: 2
Second max value: 7, position: 4
```