有5个学生(含学号、姓名和成绩信息),每个学生有3门课程的成绩和平均成绩存放在磁盘文件stud中。请从stud中读出学生记录并按平均分进行排序,将已排序的学生数据存入到一个新文件stu_sort中,用c语言给出完整代码
时间: 2024-01-04 20:03:35 浏览: 78
以下是使用 C 语言实现的程序代码,该代码将从文件 "stud" 中读取学生记录并按平均分进行排序,然后将已排序的学生数据存入到新文件 "stu_sort" 中:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENTS 5 // 学生数量
#define MAX_COURSES 3 // 每个学生的课程数量
// 定义学生结构体
typedef struct {
int id; // 学号
char name[20]; // 姓名
float scores[3]; // 每门课程的成绩
float average; // 平均成绩
} Student;
// 定义比较函数,用于 qsort 函数
int compare(const void *a, const void *b) {
Student *s1 = (Student *)a;
Student *s2 = (Student *)b;
return (s1->average > s2->average) - (s1->average < s2->average);
}
int main() {
Student students[MAX_STUDENTS]; // 学生数组
// 从文件 "stud" 中读取学生记录
FILE *fp = fopen("stud", "r");
if (fp == NULL) {
printf("Error opening file stud\n");
return 1;
}
for (int i = 0; i < MAX_STUDENTS; i++) {
fscanf(fp, "%d %s", &students[i].id, students[i].name);
for (int j = 0; j < MAX_COURSES; j++) {
fscanf(fp, "%f", &students[i].scores[j]);
students[i].average += students[i].scores[j];
}
students[i].average /= MAX_COURSES;
}
fclose(fp);
// 对学生数组按平均分进行排序
qsort(students, MAX_STUDENTS, sizeof(Student), compare);
// 将已排序的学生数据存入到新文件 "stu_sort" 中
fp = fopen("stu_sort", "w");
if (fp == NULL) {
printf("Error opening file stu_sort\n");
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)