題目描述
編寫一個函數模板,求數組中的最大元素,並寫出調用此函數模板的主函數,使得函數調用時,數組的類型可以是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;
}