利用函数重载,求三个整数的最大值和求两个实数的最大值。 【输入形式】分别输入三个整数和两个实数 【输出形式】分别输出三个整数的最大值和两个实数的最大值 【样例输入】 100 20 30 35.6 17.8 【样例输出】 100 35.6
时间: 2024-09-14 09:16:59 浏览: 14
以下是一个C++程序,它利用函数重载实现了你的要求:
```cpp
#include <iostream>
using namespace std;
// 函数重载,用于比较三个整数的最大值
int max(int a, int b, int c) {
return max(max(a, b), c);
}
// 函数重载,用于比较两个实数的最大值
double max(double a, double b) {
return (a > b) ? a : b;
}
int main() {
int int1, int2, int3;
double real1, real2;
// 读取三个整数
cin >> int1 >> int2 >> int3;
// 输出三个整数的最大值
cout << max(int1, int2, int3) << endl;
// 读取两个实数
cin >> real1 >> real2;
// 输出两个实数的最大值
cout << max(real1, real2) << endl;
return 0;
}
```
这段代码中,我们定义了两个`max`函数,它们的参数类型不同,这就是函数重载的典型使用。第一个`max`函数接受三个`int`类型的参数,而第二个`max`函数接受两个`double`类型的参数。函数体内部使用了递归(虽然在这个特定例子中并不是必要的,但为了展示重载的使用,这里用上了)。两个`max`函数都返回它们参数中的最大值。
当编译器遇到`max`函数的调用时,它会根据传递给函数的参数的类型来决定调用哪个版本的函数。