C++编写程序使用整形变量设计函数,实现查找整形数组中的最大值和次大值,并在主函数中调用,输出结果
时间: 2024-09-15 11:14:51 浏览: 41
c代码-编写一个求阶乘的函数Fact(),然后在主函数中,计算并输出1到n之间所有数的阶乘值
5星 · 资源好评率100%
在C++中,我们可以创建一个函数来寻找整数数组中的最大值和次大值。首先,我们需要一个函数模板来处理通用类型的数组,然后我们可以通过模板特化来针对`int`类型。下面是一个简单的例子:
```cpp
#include <iostream>
#include <climits> // 包含最大和最小值常量
// 函数模板,用于查找数组中的最大和次大值
template<typename T>
void findMaxAndSecondMax(T arr[], int size, T& maxVal, T& secondMax) {
if (size <= 1) {
std::cout << "Array must have at least two elements.\n";
return;
}
maxVal = *std::max_element(arr, arr + size); // 找到最大值
std::sort(arr, arr + size - 1); // 对剩余元素排序
if (size > 1) {
secondMax = *(arr + size - 2); // 次大值是排序后的倒数第二元素
} else {
secondMax = INT_MIN; // 如果只剩一个元素,设次大值为最小整数
}
}
// 主函数调用并打印结果
int main() {
int numbers[] = {5, 2, 9, 1, 7, 6};
int max, secondMax;
findMaxAndSecondMax(numbers, sizeof(numbers) / sizeof(numbers[0]), max, secondMax);
std::cout << "The maximum value is: " << max << "\n";
std::cout << "The second maximum value is: " << secondMax << "\n";
阅读全文