.编一个C++程序,用来求2个或3个正整数中的最大数,用带有默认参数的函数实现。
时间: 2024-12-02 13:21:39 浏览: 26
在C++中,我们可以使用模板和可选参数(也称为默认参数)来编写一个通用的函数,用于查找任意数量正整数的最大值。下面是一个简单的示例:
```cpp
#include <iostream>
#include <algorithm> // 包含max_element函数
// 使用模板和默认参数的函数,接受可变数量的正整数作为参数
template<int N = 2>
int findMax(int arr[]) {
if constexpr (N > 1) { // 如果参数N大于1,即至少有两个元素
int max_num = *std::max_element(arr, arr + N); // 使用算法库找到最大值
return max_num;
} else { // 如果只有一个元素或者没有元素
return arr[0];
}
}
int main() {
// 示例1:查找两个正整数的最大值
int num1 = 10, num2 = 20;
std::cout << "最大值: " << findMax<num1, num2>() << '\n';
// 示例2:查找三个正整数的最大值
int num3 = 30;
std::cout << "最大值: " << findMax<num1, num2, num3>() << '\n';
// 示例3:查找数组中的最大值(假设arr[]包含至少两个正整数)
int arr[] = {5, 15, 25};
std::cout << "最大值: " << findMax(arr, sizeof(arr) / sizeof(arr[0])) << '\n';
return 0;
}
```
在这个程序中,`findMax`函数模板接受一个整型数组和一个可选的整数`N`作为参数,默认值为2,表示寻找数组中前两个元素的最大值。通过`if constexpr`条件判断,处理了单个元素的情况。
阅读全文