100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言-->调用函数计算学生成绩平均分 课程平均分等。

C语言-->调用函数计算学生成绩平均分 课程平均分等。

时间:2021-01-08 18:18:48

相关推荐

C语言-->调用函数计算学生成绩平均分 课程平均分等。

这是一道c语言的课后题,题目如下:

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

(1)计算每个学生的平均分;

(2)计算每门课的平均分;

(3)找出所有50个分数中最高的分数对应的学生和课程;

(4)计算平均分方差。

//十个学生五门课的成绩。用函数实现一下: #include <stdio.h>#define N 10#define M 5float score[N][M];float student[N],court[M];int r,c;int main(){int i,j;float h;void stu_aver(void);//学生平均成绩 void cour_aver(void);//每门课平均分 float highest();//最高分 float fc(void);//方差for (i=0;i<N;i++){printf("请输入学生成绩%2d:\n",i+1);for(j=0;j<M;j++){scanf("%f",&score[i][j]);}}stu_aver();cour_aver();printf("\n 学号和课程 课程1 课程2 课程3 课程4 课程5 平均分\n");for(i=0;i<N;i++){printf("\n NO %d",i+1);for(j=0;j<M;j++){printf("%8.2f",score[i][j]);} printf("%8.2f",student[i]);}printf("\n五门课得分均成绩为:");for(j=0;j<M;j++){printf("%8.2f\n",court[j]);}printf("\n");h=highest();printf("最高分属于%7.2f 学号NO. %2d 课程%2d\n",h,r,c);printf("平均分方差为:%8.2f\n",fc()); return 0;}//1.计算学生的平均成绩void stu_aver(void){int i,j;float s;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++){s+=score[i][j];}student[i]=s/5;}}//2.计算每门课的平均分void cour_aver(void){int i,j;float s;for(j=0;j<M;j++){s=0;for(i=0;i<N;i++){s+=score[i][j];}court[j]=s/(float)N;}}//3.最高分对应的学生和课程float highest(){float high;int i,j;high=score[0][0];for(i=0;i<N;i++){for(j=0;j<M;j++){if(score[i][j]>high){high=score[i][j];r=i+1;c=j+1;}}}return(high);}//4.计算平均分方差 float fc(void){int i;float sum1,sum2;sum1=0;sum2=0;for(i=0;i<N;i++){sum1+=student[i]*student[i];sum2+=student[i];}return(sum1/N-(sum2/N)*(sum2/N));}

在实际的代码编写过程中遇到了很多问题

例如:计算学生五门课的平均分时,从第二个同学开始,计算出的平均分成绩包括前面的那个同学的成绩,发现是在函数循环时,没有重新五门课程的分数之和从0开始++,导致,分数之和已知从第一个同学的分数开始++。

可能还是会出现各种各样的其他问题,但是总还是会解决的,所以,坚持着往下走吧,活着就有希望呀!ljr加油吖!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。