将已排序的学生成绩文件进行插入处理。插入一个学生的3门课程成绩,程 序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
char name[50];
float scores[3];
float average;
} Student;
int compare(const void *a, const void *b) {
return ((Student *)b)->average - ((Student *)a)->average;
}
int main() {
Student students[6];
FILE *file = fopen("stu_sort.txt", "r");
if (file == NULL) {
printf("无法打开文件!\n");
return 1;
}
for (int i = 0; i < 5; i++) {
fscanf(file, "%d %s %f %f %f %f", &students[i].id, students[i].name, &students[i].scores[0], &students[i].scores[1], &students[i].scores[2], &students[i].average);
}
fclose(file);
printf("输入新学生的学号、姓名和3门课程成绩:\n");
scanf("%d %s %f %f %f", &students[5].id, students[5].name, &students[5].scor