使用c++,编写一个能求编写一个能求两个或三个数中最大值的函数
时间: 2024-03-02 16:54:31 浏览: 42
好的,根据您的要求,我可以为您编写一个求两个或三个数中最大值的函数。请参考以下代码:
```c++
#include <iostream>
using namespace std;
int max(int a, int b) {
return (a > b) ? a : b;
}
int max(int a, int b, int c) {
return max(max(a, b), c);
}
int main() {
int a, b, c;
cout << "请输入两个或三个数,用空格隔开:";
cin >> a >> b >> c;
if (cin.fail()) {
cout << "输入无效!" << endl;
return 0;
}
if (c) {
cout << "最大值为:" << max(a, b, c) << endl;
} else {
cout << "最大值为:" << max(a, b) << endl;
}
return 0;
}
```
这个函数有两个版本:`max(int a, int b)` 可以求两个数的最大值,`max(int a, int b, int c)` 可以求三个数中的最大值。在主函数中,我们通过输入来确定要求几个数的最大值。运行程序时,您可以输入两个或三个数,程序会输出它们中的最大值。
相关问题
编写一个程序,求两个或三个数的最大值,要求利用重载函数。
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int max(int a, int b) {
return a > b ? a : b;
}
int max(int a, int b, int c) {
return max(max(a, b), c);
}
int main() {
int a, b, c;
cout << "请输入两个或三个数,以空格分隔:" << endl;
cin >> a >> b;
if (cin.peek() == ' ') { // 如果下一个字符是空格,则输入三个数
cin >> c;
cout << "最大值为:" << max(a, b, c) << endl;
} else { // 否则输入两个数
cout << "请输入第三个数:" << endl;
cin >> c;
cout << "最大值为:" << max(a, b, c) << endl;
}
return 0;
}
```
首先定义了一个重载的`max`函数,可以求出两个数的最大值或三个数的最大值。在`main`函数中,先提示用户输入两个或三个数,并读取用户的输入。如果下一个字符是空格,则输入了三个数;否则需要提示用户再输入一个数。最后输出最大值即可。
PTA要求编写函数求三个数的最大值和最小值,并在主函数中调用它们
好的,我可以帮你编写这个程序。下面是代码:
```c++
#include <iostream>
using namespace std;
void findMaxMin(int a, int b, int c, int& maxVal, int& minVal) {
maxVal = a;
minVal = a;
if (b > maxVal) {
maxVal = b;
}
if (c > maxVal) {
maxVal = c;
}
if (b < minVal) {
minVal = b;
}
if (c < minVal) {
minVal = c;
}
}
int main() {
int a, b, c, maxVal, minVal;
cout << "请输入三个整数:";
cin >> a >> b >> c;
findMaxMin(a, b, c, maxVal, minVal);
cout << "最大值为:" << maxVal << endl;
cout << "最小值为:" << minVal << endl;
return 0;
}
```
这个程序定义了一个名为`findMaxMin`的函数,它接受三个整数作为输入参数,以及两个整数的引用作为输出参数,分别存储最大值和最小值。主函数中调用了这个函数,并输出了结果。