求助C语言高手,次题怎么做

来源:百度知道 编辑:UC知道 时间:2024/05/21 20:48:52
有5个学生,每个学生有3门课的成绩,从键盘输入学生的学号,姓名,三门课成绩,要求:
1.计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud"中。
2.将"stud"文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新的"stud-sort"中。

拿去

#include "stdio.h"
typedef struct student
{
char name[30],id[10];
float score[3],avr;
}student;

main()
{
student A[5];
for(int i=0;i<5;i++)
{
printf("输入学生%d的学号、姓名、成绩1、成绩2、成绩3\n",i+1);
scanf("%s%s%f%f%f",A[i].id,A[i].name,&(A[i].score[0]),&(A[i].score[1]),&(A[i].score[2]));
A[i].avr=A[i].score[0]+A[i].score[1]+A[i].score[2];A[i].avr/=3;
}
FILE *stud;
stud=fopen("stud","w");
fprintf(stud,"学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
for(int i=0;i<5;i++)
fprintf(stud,"%s %s %f %f %f %f\n",A[i].id,A[i].name,A[i].score[0],A[i].score[1],A[i].score[2],A[i].avr);
fclose(stud);
FILE *stud_sort;
stud_sort=fopen("stud_sort","w");
fprintf(stud_sort,"学号 姓名 成绩1 成绩2 成绩3 平均成绩\n");
int n=5;
while(n--)
{
int i,j;float max=0;
for(i=0;i&