输入10个学生数据,计算总平均成绩,以及最高分的学生数据

这是题目

img


以下是我的代码

#include <stdio.h>
int main()
{
    struct Student
    {
        int num;
        char name;
        float score[3];
        float aver;
    }stu[5];
    float s,m;//s为总平均成绩之和,m为三门课程总平均成绩 
    int maxnum,i,j,k;
    for(i=0;i<5;i++)
    {
    scanf("%d %c %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;
    }
    printf("NO. name score1 score2 score3 average\n");
    for(i=0;i<5;i++)
    printf("%d %c %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);
    for(i=0;i<5;i++)
    s+=stu[i].aver;
    m=s/5.0;
    printf("average=%.2f\n",m);
    maxnum=1;
    for(i=0;i<4;i++)
    {
        k=i;
        for(j=j+1;j<5;j++)
        if(stu[k].aver<stu[j].aver)
        k=j;
        maxnum=k+1;
    }
    printf("The highest score is:student %d,%c\n",stu[maxnum].num,stu[maxnum].name);
    printf("his scores are:%.2f,%.2f,%.2f,averare:%.2f.",stu[maxnum].score[0],stu[maxnum].score[1],stu[maxnum].score[1],stu[maxnum].aver);
    return 0;
}

最大分值应该如何选择?

img

stu[i].name前要加&

少个符号,输入错误

    for(i=0;i<5;i++)
    {
    scanf("%d %c %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;
    }