键盘输入10个数(可能为整形、浮点型、双精度型及其字符类型),分别利用函数重载和函数模板,求出其中的最大值和最小值。
时间: 2023-05-29 12:05:28 浏览: 38
函数重载版本:
#include<iostream>
using namespace std;
int max(int a, int b) { return a > b ? a : b; }
double max(double a, double b) { return a > b ? a : b; }
char max(char a, char b) { return a > b ? a : b; }
template<typename T>
T max(T a, T b) { return a > b ? a : b; }
int min(int a, int b) { return a < b ? a : b; }
double min(double a, double b) { return a < b ? a : b; }
char min(char a, char b) { return a < b ? a : b; }
template<typename T>
T min(T a, T b) { return a < b ? a : b; }
int main()
{
int a[10];
cout << "请输入10个数:";
for (int i = 0; i < 10; i++)
cin >> a[i];
int maxInt = a[0], minInt = a[0];
double maxDouble = a[0], minDouble = a[0];
char maxChar = a[0], minChar = a[0];
for (int i = 1; i < 10; i++)
{
maxInt = max(maxInt, a[i]);
minInt = min(minInt, a[i]);
maxDouble = max(maxDouble, a[i]);
minDouble = min(minDouble, a[i]);
maxChar = max(maxChar, a[i]);
minChar = min(minChar, a[i]);
}
cout << "int类型的最大值为:" << maxInt << endl;
cout << "int类型的最小值为:" << minInt << endl;
cout << "double类型的最大值为:" << maxDouble << endl;
cout << "double类型的最小值为:" << minDouble << endl;
cout << "char类型的最大值为:" << maxChar << endl;
cout << "char类型的最小值为:" << minChar << endl;
return 0;
}
函数模板版本:
#include<iostream>
using namespace std;
template<typename T>
T max(T a, T b) { return a > b ? a : b; }
template<typename T>
T min(T a, T b) { return a < b ? a : b; }
int main()
{
int a[10];
cout << "请输入10个数:";
for (int i = 0; i < 10; i++)
cin >> a[i];
int maxInt = a[0], minInt = a[0];
double maxDouble = a[0], minDouble = a[0];
char maxChar = a[0], minChar = a[0];
for (int i = 1; i < 10; i++)
{
maxInt = max(maxInt, a[i]);
minInt = min(minInt, a[i]);
maxDouble = max(maxDouble, a[i]);
minDouble = min(minDouble, a[i]);
maxChar = max(maxChar, a[i]);
minChar = min(minChar, a[i]);
}
cout << "int类型的最大值为:" << maxInt << endl;
cout << "int类型的最小值为:" << minInt << endl;
cout << "double类型的最大值为:" << maxDouble << endl;
cout << "double类型的最小值为:" << minDouble << endl;
cout << "char类型的最大值为:" << maxChar << endl;
cout << "char类型的最小值为:" << minChar << endl;
return 0;
}