一道题目,求大牛解答!谢谢!
分别用函数和数组实现,输入3个学生3门成绩:有5小题
(1)求每个学生的平均分
(2)求每门课程的平均分
(3)输出一张包括3个学生的成绩单
(4)找出最高分数所对应的学生和课程
(5)分别统计3门课程都高于90分的学生
程序代码:#include<stdio.h>
#define N 3 //3个人
#define M 5 //5门课
void average(int a[N][M])
{
int i,j,sum;
float b[N];
for(j=0;j<N;j++)
{
sum=0;
for(i=0;i<M;i++)
{
sum+=a[j][i];
}
b[j]=sum/5.0;
printf("第%d个学生的平均成绩为\n",j+1);
printf("%f\n",b[j]);
}
}
void average1(int a[N][M])
{
int i,j,sum;
float t[M];
for(i=0;i<M;i++)
{
sum=0;
for(j=0;j<N;j++)
{
sum+=a[j][i];
}
t[j]=sum/3.0; // N值修改这里一样要改
printf("第%d门课的平均成绩为\n",i+1);
printf("%f\n",t[j]);
}
}
float fc(int a[N][M])
{
int i,j,sum,t=0,m=0;
float b[N],k; //k为方差
for(j=0;j<N;j++)
{
sum=0;
for(i=0;i<M;i++)
{
sum+=a[j][i];
}
b[j]=sum/5.0;
t+=b[j];
m+=(b[j]*b[j]);
}
k=m/N-(t/N)*(t/N);
return k;
}
main()
{
int i,j;
int a[N][M];
for(i=0;i<N;i++)
{
printf("请输入第%d个人的成绩",i+1);
for(j=0;j<M;j++)
{
printf("第%d门课成绩\n",j+1);
scanf("%d",&a[i][j]);
}
}
average(a);
average1(a);
printf("方差=%f\n",fc(a));
}