问题 问答题

某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78875。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#define N 8
typedef struct

Char num[10];
double s[N];
double ave;

STREC;
void fun(STREC*a)


void 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",snum);
for(i=0;i<N;i++)
printf("%4.1f\n",s.s[il);
printf("\nave=%7.3f\n",s.ave);

答案

参考答案:void fun(STREC*a)
int i;
a->ave=0.0;
for(i=0;i<N;i++)
a->ave=a->ave+a->s[i];
/*求各门课程成绩的总和*/
a->ave=a->ave/N; /*求平均分*/
}

解析:
本题关键字有:结构体类型成员运算;指向结构体类型的指针变量。
[微分析]
用循环将各门课的成绩进行累加,可以使用指向运算符引用成员的方式,即a->ave和a->s[i],也可用(*a).ave和(*a).s[i]。

问答题 简答题
判断题