输入10个学生5门课的成绩,分别用函数实现下列功能:

输入10个学生5门课的成绩,分别用函数实现下列功能:1.每个学生平均分;2.求平均分方差:δ=[SXi^2]/n-(SXi/n)^2,xi为各个学生的平均分

方差就是【(xi的平方 的和)除以n】减去【(xi的总和)除以n】的平方

#include<stdio.h>

void cal_average(double **p, double *aver)
{
int i, j;
for(i=0; i<10; i++){
for(j=0; j<5; j++)
aver[i] += p[i][j];
aver[i] /= 5;
}
}

void cal_variance(double **p, double *aver, double *vari)
{
int i, j; double **temp=p;
for(i=0; i<10; i++){
for(j=0; j<5; j++){
temp[i][j] -= aver[i];
vari[i] += temp[i][j] * temp[i][j];
}
vari[i] /= 5;
}
}

void main()
{
int i, j; double score[10][5], *s[10], aver[10] = {0.}, vari[10]={0.};
printf("请输入学生成绩:\n");
for(i=0; i<10; i++)
for(j=0; j<5; j++)
scanf("%lf", &score[i][j]);
for(i=0; i<10; i++)
s[i] = &score[i][0];
cal_average(s, aver);
cal_variance(s, aver, vari);
for(i=0; i<10; i++)
printf("第%d个学生 平均分:%.1lf 方差:%.2lf\n", i+1, aver[i], vari[i]);
}
温馨提示:答案为网友推荐,仅供参考