C++编译题:编写一个函数,用来求3个正整数中的最大数,并且在主函数中调用此函数(1)用不带默认参数的函数实现(2)用带默认参数的函数实现
时间: 2024-10-16 16:04:17 浏览: 51
c代码-编写一个求阶乘的函数Fact(),然后在主函数中,计算并输出1到n之间所有数的阶乘值
5星 · 资源好评率100%
在C++中,我们可以分别使用不带默认参数和带默认参数的方式来编写一个求三个正整数最大值的函数。
**(1)不带默认参数的函数实现:**
```cpp
#include <iostream>
// 定义函数,接收三个整数作为参数
int findMax(int a, int b, int c) {
if (a > b && a > c)
return a;
else if (b > a && b > c)
return b;
else
return c;
}
int main() {
// 调用函数并传入具体的数值
int num1 = 5, num2 = 8, num3 = 3;
int maxNum = findMax(num1, num2, num3);
std::cout << "最大数是: " << maxNum << std::endl;
return 0;
}
```
**(2)带默认参数的函数实现:**
在这种情况下,我们通常会在函数声明时设置一个默认值,但在实际调用时不传递这个默认值。然而,C++不允许对方法的返回类型指定默认参数,所以这种形式在C++中并不常见。不过,如果允许的话,可以这么设计:
```cpp
// 这种形式在C++里不是标准做法,但假设是为了演示:
// 注意这将创建一个全局变量,而非局部默认参数
int globalMax = 0;
void findMax(int a = globalMax, int b = globalMax, int c = globalMax) {
// ... 实现同上
}
int main() {
// 主函数中不需要显式赋值给globalMax
int num1 = 5, num2 = 8, num3 = 3;
findMax(num1, num2, num3); // 使用默认值
// 输出最大值,这里需要手动更新globalMax
std::cout << "最大数是: " << globalMax << std::endl;
return 0;
}
```
尽管如此,推荐还是按照第一种方式(不带默认参数),因为更清晰、简洁,也避免了潜在的问题。
阅读全文