用指针的方式求出10个元素的数组中最大数和次最大数
时间: 2024-05-01 08:19:37 浏览: 57
好的,让我来为您解答。对于这个问题,可以通过以下代码来实现:
```c++
#include <iostream>
using namespace std;
void maxNum(int arr[], int n)
{
int max = arr[0], secondMax = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
secondMax = max;
max = arr[i];
}
else if (arr[i] > secondMax && arr[i] != max) {
secondMax = arr[i];
}
}
cout << "最大数为:" << max << endl;
cout << "次大数为:" << secondMax << endl;
}
int main()
{
int arr[10] = {10, 95, 28, 57, 34, 83, 17, 46, 77, 66};
maxNum(arr, 10);
return 0;
}
```
这段代码中使用了一个 for 循环,遍历数组中的每一个元素来进行比较,找出最大值和次大值。在比较过程中,分三种情况来更新 max 和 secondMax 的值:
1. 当 arr[i] 大于 max 时,更新 secondMax 的值,并将 max 更新为 arr[i] 的值,代表目前出现最大的元素是 arr[i]。
2. 当 arr[i] 大于 secondMax,但是不等于 max 时,更新 secondMax 的值,代表目前出现的比最大元素小的最大的元素是 arr[i]。
3. 其他情况,即 arr[i] 不大于 max,也不大于 secondMax,直接跳过,继续下一次循环。
最终的结果会输出最大数和次大数。希望这个回答对您有所帮助。
阅读全文