问答题 某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩已在主函数中给出。请编写proc()函数,它的功能是:求出该学生的平均分放在记录的avc成员中。请自己定义正确的形参。
例如,若学生的成绩是65.5,75,88,90,90.5,66,64.5,89.5,则他的平均分应当是78.625。
注意:部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#define M 8
typedef struct
char num[10];
double s[M];
double ave;

STREC;
void proc(STREC *p)


void main()

STREC stu="GA005", 65.5, 75, 88, 90, 90.5, 66, 64.5, 89.5;
int i;
proc (&stu);
printf ("The %s's student data: /n",
stu. num); //输出学号
for(i=0; i<M; i++)
printf ("%4.1f/n", stu.s[i]);
//输出各科成绩
printf("nave=%7.3f/n", stu.ave);
//输出平均分


【正确答案】void proc(STREC * p)
{
int i;
p->ave=0.0; //其平均数初始值为0
for(i=0; i<M; i++)
p->ave=p->ave+p->s[i]; //学生的平均分放在记录的ave成员中
p->ave=p->ave/M;
}
【答案解析】[解析] 要求该学生的平均成绩,首先要求出其各科成绩之和,然后求出其平均成绩并放在成员变量ave中。