有10个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入学生数据,要求输出每个学生三门课程的平均成绩,以及最高分学生的数据(学号、姓名、三门课的成绩、该学生的平均成绩)
不知道哪里错了,无法正确进行输入输出
#include <stdio.h>
struct Student{
int num;
char name[20];
float score[3];
float aver;
}stu[10];
int main(){
void input_aver(struct Student p[]);
void print_aver(struct Student p[]);
input_aver(stu);
print_aver(stu);
return 0;
}
void input_aver(struct Student p[]){
int i;
for(i=0;i<10;i++){
printf("请输入学号、姓名、三门课的成绩:\n");
scanf("%d%s%f%f%f\n",&p[i].num,p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2]);
p[i].aver=(p[i].score[0]+p[i].score[1]+p[i].score[2])/3.0;
}
}
void print_aver(struct Student p[]){
int i,j;
int flag=0;
struct Student *k=p; //哪一位学生有最高分
float max=p[0].score[0];//放最高分
for(i=0;i<10;i++){
printf("No.%d的平均成绩为:%.2f\n",i+1,p[i].aver);
}
for(i=0;i<10;i++){
for(j=0;j<3;j++){
if(p[i].score[j]>max){
flag=1;
max=p[i].score[j];
}
}
if(flag)k=p+i;
}
printf("最高分的学生的学号、姓名、三门课成绩,平均成绩分别为:%d %s %.2f %.2f %.2f %.2f",
k->num,k->name,k->score[0],k->score[1],k->score[2],k->aver);
}