初学结构体变量,求助
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入3个学生的数据,要求输出3门课总平均成绩,以及单科最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数),成绩都大于85分的学生的信息#include <stdio.h>
#define N 10
struct student
{
int num;
char name[20];
float score[3];
};
void main()
{ struct student stu[N],*p;
void input(struct student stu[N]);
void average(struct student stu[N]);
void search(struct student stu[N]);
void search85(struct student stu[N]);
p=stu;
input(p);
printf("各科总平均成绩:\n");
average(p);
printf("单科最高分学生信息:\n");
search(p);
printf("各科成绩都大于85的学生信息:\n");
search85(p);
}
void input(struct student stu[N])
{
int i,j;
for (i=0;i<N;i++)
{
printf("请输入第%d名学生的信息: \n",i+1);
printf("学号: ");
scanf("%d",&stu[i].num);
printf("姓名: ");
scanf("%s",stu[i].name);
for (j=0;j<3;j++)
{
printf("课程%d成绩: ",j+1);
scanf("%f",&stu[i].score[j]);
}
}
}
void average(struct student stu[N])
{
int i,j;
float sum,aver[3];
for(i=0;i<3;i++)
{sum=0;
for(j=0;j<N;j++)
{ sum+=stu[i].score[j];}
aver[i]=sum/N;
printf("课程%d的总平均成绩:%f",i+1,aver[i]);
}
void search(struct student stu[N])
{
float max,avg;
int k,m,i,j;
for(i=0;i<3;i++)
{ max=stu[0].score[i];
for(j=0;j<N;j++)
if(max<stu[j].score[i]) max=stu[j].score[i];
k=i;m=j;
avg=stu[m].score[0]+stu[m].score[1]+stu[m].score[2];
}
printf("学号: %d,姓名: %s,课程1成绩: %f,课程2成绩: %f,课程3成绩: %f,平均成绩: %f\n",stu[m].num,stu[m].name,stu[m].score[0],stu[m].score[1],stu[m].score[2],avg/3);
}
void search85(struct student stu[N])
{
int i,j,label;
float avg;
for (i=0;i<N;i++)
{
avg=0;
label=0;
for (j=0;j<3;j++)
{
if (stu[i].score[j]>85) label++;
avg +=stu[i].score[j];
}
if (label==3)
{
printf("学号: %d,姓名: %s,课程1成绩: %f,课程2成绩: %f,课程3成绩: %f,平均成绩: %f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],avg/3);
}
}
踢错是\c语言\cdaf.c(60) : error C2143: syntax error : missing ';' before 'type'
C:\c语言\cdaf.c(63) : error C2143: syntax error : missing ';' before 'type'
C:\c语言\cdaf.c(65) : error C2065: 'max' : undeclared identifier
C:\c语言\cdaf.c(65) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
C:\c语言\cdaf.c(67) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
C:\c语言\cdaf.c(68) : error C2065: 'k' : undeclared identifier
C:\c语言\cdaf.c(68) : error C2065: 'm' : undeclared identifier
C:\c语言\cdaf.c(69) : error C2065: 'avg' : undeclared identifier
C:\c语言\cdaf.c(69) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
C:\c语言\cdaf.c(94) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
cdaf.obj - 1 error(s), 0 warning(s)
感觉没错,不知道怎么改,希望各位老师不吝赐教!