用c++求两个或3个正整数中的最大数,用带有默认参数的函数实现。
时间: 2024-09-12 16:14:55 浏览: 89
c++程序设计 利用函数实现指定功能
在C++中,你可以通过创建一个带有默认参数的模板函数来找到任意数量(最多三个)正整数中的最大值。这里我们假设你想要找出三个整数中的最大值,如果只有一个或两个整数,则可以简单地将第三个默认参数设为最大整数值(std::numeric_limits<int>::max())。以下是实现这个功能的一个示例:
```cpp
#include <iostream>
#include <limits>
// 模板函数,接收任意数量的正整数,默认最后一个参数为最大值
template<typename T, typename... Args>
T findMax(T a, Args... args) {
return (a > std::get<sizeof...(Args)>(args...) ? a : findMax(args...));
}
int main() {
int num1 = 5, num2 = 10, num3 = 15;
// 如果只有两个数
int maxOfTwo = findMax(num1, num2);
std::cout << "Max of two numbers: " << maxOfTwo << std::endl;
// 如果有三个数
int maxOfThree = findMax(num1, num2, num3);
std::cout << "Max of three numbers: " << maxOfThree << std::endl;
return 0;
}
```
在这个例子中,`findMax` 函数使用了C++模板推导(template deduction)和递归技巧来处理任意数量的参数。当参数列表只剩下一个元素(即默认参数)时,递归结束,并返回该元素作为结果。
阅读全文