题目描述
定义类模板,类中包含一个有k(0<k<20)个元素的数组;定义成员函数max()求出这k个元素中的最大数。在main()中建立对象,调用max()求多个整数和多个实数中的最大数。
注意必须使用类模板。
输入
有4行。第1行是整数的个数n (0<n<20) ,第2行是n个整数;第3是实数的个数m ( 0<m<20),第4行是m个实数。
输出
有2行。第1行n个整数中的最大数,第2行为m个实数中的最大数。
样例输入 Copy
4 6 10 8 5 3 7.556 9.258 15.54
样例输出 Copy
10 15.54
解答:
#include<iostream>
using namespace std;
template<class T>
class A
{
public:
int j;
T max(T q[],int n)
{
T m=q[0];
for(j=1;j<n;j++)
{
if(m<q[j])m=q[j];
}
cout<<m<<endl;
}
};
int main()
{
A<int>a1;
int n,i;
cin>>n;
int *p=new int[n];
for(i=0;i<n;i++)
cin>>p[i];
a1.max(p,n);
cin>>n;
A<double> a2;
double *d=new double[n];
for(i=0;i<n;i++)
cin>>d[i];
a2.max(d,n);
return 0;
}