利用函数的重载求平均数

来源:百度知道 编辑:UC知道 时间:2024/09/24 03:54:58
double average(double *array,int size);
int average(int *array,int size);
谁能帮我写出代码?????

//搞一个宏,用来定义函数
#define define_average_fun(N,T) \
T N(T const *vals,int n) \
{ \
T sum=(T)0; \
for (T *f=vals,*l=vals+n;f!=l;f++) \
{ \
sum+=*f; \
} \
return sum/(T)n; \
}

define_average_fun(average,double) //定义double型的average
define_average_fun(average,int) //定义int型的average
define_average_fun(average,float) //定义float型的average

int main()
{
double dvs[]={1.1,2.2,3.3};
float fvs[]={1.1f,2.2f,3.3f};
int ivs[]={1,2,3};

double davg=average(dvs,3);//davg变成2.2
float favg=average(fvs,3);//favg变成2.2
int iavg=average(ivs,3);//iavg变成2
return 0;
}