有关结构体的”left of '.name' must have struct/union type“
有五个学生,每个学生的数据包括学号、姓名(最长19字节)、四门课的成绩,从键盘输入五个学生的数据,并计算每个学生的平均成绩,最后显示最高平均分的学生的信息(包括学号,姓名,四门课的成绩,平均分数)。要求用结构体编程,变量数据类型的选择应适当,
程序代码:
#include <stdio.h> /* User Code Begin(考生可在本行后添加代码,例如全局变量的定义、函数原型声明等,行数不限) */ struct stud { int num[10]; char name[10]; double score1,score2,score3,score4; double aver; }stud[5]; struct stud myClass(struct stud *stud); /* User Code End(考生添加代码结束) */ int main(void) { int high; /* high记录平均分最高的学生的序号,具体使用参考后面的代码 */ /* User Code Begin(考生可在本行后添加代码,行数不限) */ myClass(stud); /* User Code End(考生添加代码结束) */ printf("\nThe Highest is %s(%d)\nscore1=%.2f score2=%.2f score3=%.2f score4=%.2f aver=%.2f\n", myClass[high].name, myClass[high].num, myClass[high].score1, myClass[high].score2, myClass[high].score3, myClass[high].score4, myClass[high].aver); return 0; } /* User Code Begin(考生在此后根据设计需要完成程序的其它部分,行数不限) */ struct stud myClass(struct stud *stud) { int i,m; double max=0,sum=0; printf("Please input students info:Num Name score1 score2 score3 score4\n"); for(i=0;i<5;i++,stud++) { printf("%d: ",i+1); scanf("%d %s %lf %lf %lf %lf",stud->num,stud->name,&stud->score1,&stud->score2,&stud->score3,&stud->score4); } for(i=0;i<5;i++,stud++) { sum=stud->score1+stud->score2+stud->score3+stud->score4; stud->aver=sum/5.0; } for(i=0;i<5;i++,stud++) { if(max<stud->aver) { max=stud->aver; m=i; } } return stud[m]; }
我知道我的代码有错误,但不知道怎么改,刚学结构体,运用起来不熟,求教