题目描述
编写一个函数模板,求数组中的最大元素,并写出调用此函数模板的主函数,使得函数调用时,数组的类型可以是int型、double型和string类型。数组中元素个数3≤n≤20
主函数中,先从键盘输入各种类型数组的长度,再输入数组元素的值,调用函数求出最大值,再输出。
输入描述
输入共分6行
int型数组元素的个数
int型数组元素的值
double型数组元素的个数
double型数组元素的值
string类型数组元素的个数
string数组元素的值
输出描述
三行
int型数组中元素的最大值
double型数组中元素的最大值
string型数组中元素的最大值
输入样例
5
78 96 -12 52 856
6
3.2 5.6 89.2 -3.2 46.2 63.47
5
hello world example virtual char
输出样例
856
89.2
world
#include<iostream>
#include<string>
using namespace std;
template<typename T>
T Max(T *a, int n)
{
int j = 0;
//T maxnum = { 0 };//这里十分重要,如果是0,string 就不能用了
//maxnum = a[0];
for (int i = 1; i < n; i++)
{
if (a[i] > a[j])
j = i;//找到最大值的下标
}
return a[j];
}
int main()
{
int n1, n2, n3;
int a[20];
double b[20];
string c[20];
cin >> n1;
for (int i = 0; i < n1; i++)
cin >> a[i];
cin >> n2;
for (int i = 0; i < n2; i++)
cin >> b[i];
cin >> n3;
for (int i = 0; i < n3; i++)
cin >> c[i];
cout<<Max(a, n1)<<endl;
cout << Max(b, n2) << endl;
cout << Max(c, n3) << endl;
return 0;
}