有一个函数,返回8 门课程的平均成绩,
void fun(STREC*s)
{
double score;
int i;
for(i=0;i<8;i++)
score=score+s->s[i]; ?
s->ave=score/8 ?
}
最后两句麻烦大家帮我解释一下吧!谢了!
有一个函数,返回8 门课程的平均成绩,
void fun(STREC*s)
{
double score;
int i;
for(i=0;i<8;i++)
score=score+s->s[i]; ?
s->ave=score/8 ?
}
最后两句麻烦大家帮我解释一下吧!谢了!
s是指某个结构体的结构体指针,s->s[i]就是s所指向的结构体的成员数组s[i],那么可推定:
某结构体{
.....
double s[8];//至少是8,或者有可能不是double,这个就是s->s[i]
double ave;//这个就是s->ave
....
}
其组成至少包括上述两项。
根据上面的说法,我想这个结构体应该是这样的 enum { LESSON_1, LESSON_2, LESSON_3, LESSON_4, LESSON_5, LESSON_6, LESSON_7, LESSON_8, TOTAL_LESSON }; typedef struct _STREC { double s[TOTAL_LESSON]; // 存储课程成绩的数组 double avg; // 存储平均成绩 /*至少应该有这两个东东*/ } STREC;
接着我猜测main函数应该是这样的: void main() { STREC * pSTREC; pSTREC = (STREC *)malloc(sizeof(STREC)); pSTREC->s[LESSON_1] = 60; pSTREC->s[LESSON_2] = 70; // 下面的就不赋了 fun(pSTREC); free(pSTREC); }