使用函数模板实现对不同类型数组求平均值的功能,要求程序可以计算一组整型数或一组浮点数的平均值.
Input
输入为若干组数据,每组数据用3行表示,第1行为一个整数0或1,0代表即将输入的这组数据为整型数,1代表即将输入的这组数据为浮点数。第2行为一个整数n,代表第3行有n个数据。第3行为n个数据,其类型全为整型或全为浮点型。
Output
输出为若干组数据,每组数据用1行表示,为一组数据的平均值,若该组数据为整型数,则平均值取整(不必四舍五入),若该组数据为浮点数,则平均值四舍五入保留小数点后2位。
Sample Input
031 2 3131 2 4
Sample Output
22.33
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
template<typename T>
T everage(T a[],int b)
{
int i;
T sum=0;
for(i=0;i<b;i++)
sum+=a[i];
sum=sum/b;
return sum;
}
int main()
{
int i,j,k,m,n;
while(cin>>k)
switch(k)
{
case 0:
{
cin>>m;
int a[1005];
for(i=0;i<m;i++)
cin>>a[i];
cout<<everage(a,m)<<endl;
break;
}
case 1:
{
cin>>m;
double a[1005];
for(i=0;i<m;i++)
cin>>a[i];
cout<<setiosflags(ios::fixed)<<setprecision(2)<<everage(a,m)<<endl;
break;
}
}
}