/*-------------------------------------------------------【程序设计】---------------------------------------------------------题目:某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在 主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记 录的ave成员中。例如:学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun部位中填入你编写 的若干语句。-------------------------------------------------------*/#include <stdio.h>#define N 8void wwjt ( );typedef struct{ char num[10]; double s[N]; double ave;} STREC;void fun(STREC *a){ /**********Program**********/ double ave = 0.0; int i; for(i=0;i<N;i++) a->ave = a->ave+a->s[i]; a->ave/=N; /********** End **********/}main(){ STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5}; int i; fun( &s ); printf("The %s's student data:\n", s.num); for(i=0;i<N; i++) printf("%4.1f\n",s.s[i]); printf("\nave=%7.3f\n",s.ave); wwjt();}void wwjt(){/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *out ; int i ; STREC s[10] = { {"GA005",85.5,76,69.5,85,91,72,64.5,87.5}, {"GA001",82.5,66,76.5,76,89,76,46.5,78.5}, {"GA002",72.5,56,66.5,66,79,68,46.5,58.5}, {"GA003",92.5,76,86.5,86,99,86,56.5,88.5}, {"GA004",82,66.5,46.5,56,76,75,76.5,63.5}, {"GA006",75.5,74,71.5,85,81,79,64.5,71.5}, {"GA007",92.5,61,72.5,84,79,75,66.5,72.5}, {"GA008",72.5,86,73.5,80,69,63,76.5,53.5}, {"GA009",66.5,71,74.5,70,61,82,86.5,58.5}, {"GA010",76,66.5,75.5,60,76,71,96.5,93.5}, }; out = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fun(&s[i]) ; fprintf(out, "%7.3f\n", s[i].ave) ; } fclose(out) ;}