用C++用C++编写一个函数模板,对不同类型的数组求平均值。

用C++编写一个函数模板,对不同类型的数组求平均值。在main函数中分别求一个整型数组和一个单精度浮点型数组的平均值。
哪位高手会的话,帮我给出详细过程,不胜感激

#include <iostream>
using namespace std;

template<typename T>
double average(T *src, int len)  // T ä¼šé€šç”¨ç±»åž‹
{
    double sum = 0;
    for (int i = 0; i < len; i++)
        sum += src[i];
    return sum / len;
}

int main()
{
    int n[] = {10, 1, 27, 43, 15};
    cout << "average: " << average(n, 5) << endl;

    float f[] = {10.2f, 1.5f, 2.7f, 4.3f, 1.5f};
    cout << "average: " << average(f, 5) << endl;

    double d[] = {10.2, 51.5, 20.7, 40.3, 1.5, -12.6, 5.64};
    cout << "average: " << average(d, 7) << endl;
    return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2006-08-04
/* average.h */
template<class T>
T average(T a[],int n)
{
T averValue,sum=0;
for(int i=0;i<n;i++)
sum+=a[i];
averValue=sum/n;
return averValue;
}

template<class T>
void display(T a[],int n)
{
cout<<"数组元素如下所示:\n";
for(int i=0;i<n;i++)
cout<<a[i]<<"\t";
cout<<endl;
}
// cpp 文件
/* average.cpp */

#include"average.h"
#include<iostream.h>
void main()
{
int a[]={1,3,6,7,2,9};
float b[]={1.3,2.8,6.9,7.1,5.6};
display(a,sizeof(a)/sizeof(int));
cout<<"该数组的平均值为:"<<average(a,sizeof(a)/sizeof(int))<<endl;
display(b,sizeof(b)/sizeof(float));
cout<<"该数组的平均值为:"<<average(b,sizeof(b)/sizeof(float))<<endl;

}
//整数求平均值有可能是浮点数.本回答被提问者采纳

用C++用C++编写一个函数模板,对不同类型的数组求平均值。
int len) \/\/ T 会通用类型{ double sum = 0; for (int i = 0; i < len; i++) sum += src[i]; return sum \/ len;}int main(){ int n[] = {10, 1, 27, 43, 15}; cout << "

C++改错 题目是函数模板求平均值。
double list1[]={20.2,5.9,6.5,8.4,6.2,7.1,7.5,9.2};array(list1,8);cout<<"list1's average "<<array(list1,8)<<endl;int list2[]={2,5,10,4,65,4,9,9};array(list2,8);cout<<"list2's average "<<array(list2,8)<<endl;return 0;} ...

C++编程:定义模板函数,返回基本类型数组中最大值或最小值(主函数验证...
include <iostream> using namespace std;template <typename T>\/\/模板函数 T fun(T *p,int n,int x=0){ for(int maxi=0,mini=0,i=1;i<n;i++)if(p[maxi]p[i])mini=i;return p[x ? mini : maxi];} int main(int argc,char *argv[]){\/\/测试主函数 double a[3]={1.07...

定义一个函数模板,实现求n个数平均值的功能。
cout<<"该数组的平均值为:"<<average(a,sizeof(a)\/sizeof(int))<<endl;display(b,sizeof(b)\/sizeof(float));cout<<"该数组的平均值为:"<<average(b,sizeof(b)\/sizeof(float))<<endl;} \/\/整数求平均值有可能是浮点数.

...整型数据和实型数据绝对值的函数模板。用c++编写
include <iostream>using namespace std;template <class T>T abs(const T& t){ T result = t > 0 ? t: -t; return result;}int main(){ cout << "请输出n的值"<<endl; int n; cin >> n; cout << abs (n) << endl; return 0;} ...

c++怎样编写不确定参数个数的函数?
\/\/ Returns some number (typecast prevents truncation)} int main(){ cout<< average ( 3, 12.2, 22.3, 4.5 ) <<endl;cout<< average ( 5, 3.3, 2.2, 1.1, 5.5, 3.3 ) <<endl;} 补充一句:不确定输入参数个数的函数应该尽量的避免使用,除非万不得已,最好不要用。

用c++ 设计一个函数模板,实现从int、float、double类型的数组找出最大...
} int main(){ int maxa,a[5]={1,4,3,2,5};float maxb,b[5]={5.2f,3.2f,4.2f,2.3f,3.1f};double maxc,c[5]={2.5,1.2,2.4,3.6,4.5};maxa = max(a,5);maxb = max(b,5);maxc = max(c,5);printf("%d\\n%f\\n%lf\\n",maxa,maxb,maxc);return 0;} ...

定义类模板实现对数组类中数组元素的查找和求和功能.
代码如下:class Box { private:int a, b, c;public:int V;Box(int ch,int k,int g){ a = ch;b = k;c = g;V = a*b*c;}

C++编写一个判断输入的两个数是否相等的函数模板,并使用不同类型的数据...
include<iostream.h> include<math.h> \/\/C++编写一个判断输入的两个数是否相等的函数模板,并使用不同类型的数据测试该函数模板。template<class S,class T>\/\/相等返回1,不相等返回0 int equal(S x,T y){ if(fabs(x-y)<10e-6)return 1;else return 0;} void main(){ int a=1,b=2;...

用C++语言编写程序实现:设计一个函数模板,实现用冒泡法对10 个某类型...
4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。这里只需套用函数模板,将元素的类型设为模板变量即可,代码如下:template <typename Item>void sort(Item *arr){int i, j;Item temp; for (j = 0; j < 9; j++) for (i = 0; i < 9 - j; i++) ...

相似回答