提交方式:C++

#include<cstdio>
#include<iostream>
#include<algorithm>
#define N 10
using namespace std;

struct student
{
    char num[10];
    char name[8];
    int  score[3];
    float ave;
    const bool operator <(const student &another)const{
        return ave<another.ave;
    }
} st[N], s;

int main()
{
    FILE* fp;
    int i, j, t;
    if ((fp= fopen("stud.dic", "r")) == NULL)
    {
        printf("can not open.\n");
        exit(0);
    }
    
    for(int i=0;i<5;i++){
        fscanf(fp,"%s%s%d%d%d%f",&st[i].num,&st[i].name,&st[i].score[0],&st[i].score[1],&st[i].score[2],&st[i].ave);
    }
    
    scanf("%s%s%d%d%d",&st[5].num,&st[5].name,&st[5].score[0],&st[5].score[1],&st[5].score[2]);
    st[5].ave=(st[5].score[0]+st[5].score[1]+st[5].score[2]);
    st[5].ave/=3;
    sort(st,st+6);
    printf("Now:");
    for (i= 5; i >=0; i--)       //输出插入点之后的数据
    {
        printf("\n%s %s", st[i].num, st[i].name);
        for (j= 0; j < 3; j++)
            printf(" %d", st[i].score[j]);
        printf(" %.2f", st[i].ave);
    }
    fclose(fp);    //关闭文件
    return 0;
}