面向对象程序设计上机练习二(函数模板)
Time Limit: 1000MS Memory limit: 65536K
题目描述
利用数组和函数模板求5个数最大值(分别考虑整数、单精度、长整数的情况)。
输入
分别输入5个int型整数、5个float 型实数、5个long型正整数。
输出
分别输出5个int型整数的最大值、5个float 型实数的最大值、5个long型正整数的最大值。
示例输入
11 22 666 44 55 11.11 22.22 33.33 888.88 55.55 1234567 222222 333333 444444 555555
示例输出
666 888.88 1234567
同一道题,运用函数模板就比运用函数重载要省事很多
而且代码的可读性和简洁性都有了。。
#include <iostream>
using namespace std;
//模板声明,T为类型参数
template <typename T>
//定义一个通用函数,用T做虚拟的类型名
T max(T a[])
{
int i;
T m=0;
for(i=0; i<5; i++)
{
if(a[i]>m)
m=a[i];
}
return m;
}
//主函数
int main()
{
int i;
int x[5],X;
float y[5],Y;
long z[5],Z;
//输入
for(i=0; i<5; i++)
cin >> x[i];
for(i=0; i<5; i++)
cin >> y[i];
for(i=0; i<5; i++)
cin >>z[i];
//模板调用
X=max(x);
Y=max(y);
Z=max(z);
//输出
cout << X << endl;
cout << Y << endl;
cout << Z << endl;
return 0;
}