stud文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存 入一个新文件stu_sort中。
#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[5];
FILE *file = fopen("stud.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);
qsort(students, 5, sizeof(Student), compare);
file = fopen("stu_sort.txt", "w");
if (file == NULL) {
printf("无法创建文件!\n