提交方式: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; }