编写一个程序,用来求2个或3个整数中的最大输,,用函数重载实现
时间: 2024-06-04 20:11:42 浏览: 17
#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 << "请输入2个或3个整数,用空格隔开:" << endl;
cin >> a >> b;
if (cin.peek() == ' ') {
cin.ignore();
cin >> c;
cout << "最大数为:" << max(a, b, c) << endl;
}
else {
cout << "最大数为:" << max(a, b) << endl;
}
return 0;
}
相关问题
c++用重载函数编写程序计算2个或3个整数的最大数
以下是使用重载函数来计算两个或三个整数的最大值的C++程序:
```c++
#include <iostream>
using namespace std;
int max(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
int max(int a, int b, int c) {
if (a > b) {
if (a > c) {
return a;
} else {
return c;
}
} else {
if (b > c) {
return b;
} else {
return c;
}
}
}
int main() {
int a, b, c;
cout << "请输入两个或三个整数:" << endl;
cin >> a >> b >> c;
if (c) {
cout << "最大值是:" << max(a, b, c) << endl;
} else {
cout << "最大值是:" << max(a, b) << endl;
}
return 0;
}
```
这个程序定义了两个重载函数 max,一个用于计算两个整数的最大值,另一个用于计算三个整数的最大值。在 main 函数中,程序通过检查是否输入了第三个整数来决定使用哪个函数来计算最大值。
编写重载函数可求取2个整数,3个整数的最大值
下面给出两种方案:
方案一:使用函数重载实现
```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) {
int max1 = max(a, b);
int max2 = max(max1, c);
return max2;
}
int main() {
int a = 1, b = 2, c = 3;
cout << "max(a,b) = " << max(a, b) << endl;
cout << "max(a,b,c) = " << max(a, b, c) << endl;
return 0;
}
```
方案二:使用可变参数模板实现
```c++
#include <iostream>
#include <cstdarg>
using namespace std;
int max(int count, ...) {
int res = INT_MIN;
va_list vl;
va_start(vl, count);
for (int i = 0; i < count; ++i) {
int val = va_arg(vl, int);
res = (val > res) ? val : res;
}
va_end(vl);
return res;
}
int main() {
int a = 1, b = 2, c = 3;
cout << "max(a,b) = " << max(2, a, b) << endl;
cout << "max(a,b,c) = " << max(3, a, b, c) << endl;
return 0;
}
```
这两种方案都可以用来求取2个整数和3个整数的最大值,使用哪种方案取决于具体的需求情况。