/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:某学生的记录由学号、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 8
void 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) ;
}