一道题目,求大牛解答!谢谢!
分别用函数和数组实现,输入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)); }