编写一个C++编写一个函数实现:当传入 2 个 int 型实参时可求解 2 个实参数中的最大值,当传 入 3 个 int 型实参时求 3 个实参数中的最大值
时间: 2024-09-19 18:04:21 浏览: 42
在C++中,你可以创建一个模板函数来解决这个问题,这样可以同时处理两个或三个整数的最大值。这里是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
// 模板函数,接受任意个int类型的参数并返回其中的最大值
template<int N>
int max_of(int arr[]) {
if (N == 2) {
return (arr[0] > arr[1]) ? arr[0] : arr[1]; // 对于两个数,直接比较
} else if (N == 3) {
int max_value = arr[0];
for (int i = 1; i < N; i++) {
if (arr[i] > max_value) {
max_value = arr[i];
}
}
return max_value;
} else {
cerr << "Invalid number of arguments." << endl;
return -1; // 如果传入的不是2或3个参数,返回错误代码
}
}
int main() {
int a = 5, b = 10, c = 8;
cout << "Max of 2 numbers: " << max_of<2>(&a, &b) << endl;
cout << "Max of 3 numbers: " << max_of<3>(&a, &b, &c) << endl;
return 0;
}
```
这个`max_of`函数首先检查传入参数的数量,然后根据数量分别执行相应的逻辑。如果需要处理更多参数,只需增加更多的`else if`分支即可。
阅读全文