用结构体变量的指针作函数参数,有段程序运行出现问题,求赐教
#include<stdio.h>#define N 3
struct Student
{
int num;
char name[20];
float score[3];
float aver;
};
int main()
{
void input(struct Student stu[]);
struct student max(struct Student stu[]);
void print(struct Student stu);
struct Student stu[N],*p=stu;
input(p);
print(max(p));\\这里是出了什么问题吗?
return 0;
}
void input(struct Student stu[])
{int i;
printf("请输入个各学生的信息:学号,姓名,三门课成绩:\n");
for(i=0;i<N;i++)
{scanf("%d%s%f%f%f",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;
}
}
struct Student max(struct Student stu[])
{
int i,m=0;
for(i=0;i<N;i++)
if(stu[i].aver>stu[m].aver)m=i;
return stu[m];
}
void print(struct Student stud)
{
printf("\n成绩最高的学生是:\n");
printf("学号:%d\n姓名:%s\n三门成绩:%5.1f,%5.1f,%5.1f\n平均成绩:%6.2f\n",stud.num,stud.name,stud.score[1],stud.score[2],stud.aver);
}
提示的信息是:error C2664: 'print' : cannot convert parameter 1 from 'struct main::student' to 'struct Student'
Source or target has incomplete type