思路:先求出元素的平均值,再求方差
#include<iostream>
#define N 5
using namespace std;
void show(double *p,int n) //输出数组
{
int i=0;
for(i=0;i<n;i++){
cout<<p[i]<<'\t';
}
}
void f(double p[],int n,double &ave) //求平均值
{
int i;float s=0;
for(i=0;i<n;i++)
{
s+=p[i];
}
ave=s/n;
}
float var(double p[],int n,double ave) //计算方差
{
int i;float s=0;
for(i=0;i<n;i++)
{
s+=(p[i]-ave)*(p[i]-ave);
}
return s;
}
int main()
{
double a[N],ave,var0;
int i;
cout<<"输入"<<N<<"个数,将输入其方差\n";
for(i=0;i<N;i++)cin>>a[i];
cout<<"输入的数据为:\n";
show(a,N);
f(a,N,ave);
cout<<"\n所输入"<<N<<"个元素的平均值为:"<<ave;
var0=var(a,N,ave);
cout<<"\n方差为:"<<var0<<endl;
return 0;
}