有大佬知道为什么报这两个错误吗,感谢
#include<stdio.h> typedef struct{
char name[20];
int score[3];
}student;
const int number=10;
student student_input(student *pstudent){
scanf("%c",&pstudent->name);
int i=0;
for( i=0;i<3;i++){
scanf("%c",&pstudent->score[i]);
}
return pstudent;
}
void student_print(const student *pstudent){
double avg=student_averge(pstudent);
printf("%c",pstudent->name) ;
int i;
for(i=0;i<3;i++){
printf("%d",pstudent->score);
}
printf("%.5f",avg);
}
void student_average(const student *pstudent){//求学生三科成绩平均值函数,需要传入一个地址
double sum=0.0;
int i;
for(i=0;i<3;i++){
sum+=pstudent->score[i];
}
}
int main(){
printf("请输入学生姓名和各科目成绩\n");
student student[number];//创建一个容量为20的结构数组
student *pstudent;//创建一个该结构类型的指针,现在指针内部还未初始化
pstudent=&student[0];//将用来存储学生数据的结构数组的第一个结构的首地址赋给刚刚定义的指针 ?试试删掉这行
int i;
for(i=0;i<10;i++){//将用户输入的数据分组传入结构数组
pstudent=student_input(&student[i]);//主函数中定义的pstudent指针内存储的地址信息就是子函数中经过操作的结构数组的地址
pstudent++;
}
printf("No\tname\tscore1\tscore2\tscore3\t");
pstudent=&student[0];
for(i=0;i<number;i++){
student_printf(pstudent);
pstudent++;
}
return 0;
}
报错
C:\Users\yhxc\Desktop\C语言程序\统计班级同学成绩.c In function 'student_input':
13 2 C:\Users\yhxc\Desktop\C语言程序\统计班级同学成绩.c [Error] incompatible types when returning type 'struct student *' but 'student' was expected
C:\Users\yhxc\Desktop\C语言程序\统计班级同学成绩.c In function 'main':
34 11 C:\Users\yhxc\Desktop\C语言程序\统计班级同学成绩.c [Error] 'pstudent' undeclared (first use in this function)
34 11 C:\Users\yhxc\Desktop\C语言程序\统计班级同学成绩.c [Note] each undeclared identifier is reported only once for each function it appears in