用c语言文件写入三个学生的成绩,通过功能函数调用把三个学生的成绩按升序排序,依次写入文件中
时间: 2023-10-24 10:08:45 浏览: 70
学生成绩管理系统(C语言,处理文件)
好的,下面是一个简单的 C 语言代码实现:
```c
#include <stdio.h>
struct student {
char name[20];
int score;
};
void sort(struct student arr[], int n) {
int i, j;
struct student temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j].score > arr[j + 1].score) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
FILE *fp;
struct student stu[3];
int i;
for (i = 0; i < 3; i++) {
printf("请输入第%d个学生的姓名和成绩:", i + 1);
scanf("%s %d", stu[i].name, &stu[i].score);
}
sort(stu, 3);
fp = fopen("score.txt", "w");
if (fp == NULL) {
printf("文件打开失败!");
return 1;
}
fprintf(fp, "按升序排列后的学生信息:\n");
for (i = 0; i < 3; i++) {
fprintf(fp, "%s %d\n", stu[i].name, stu[i].score);
}
fclose(fp);
return 0;
}
```
在原来的基础上,增加了文件操作部分。在 `main` 函数中,先通过循环输入三个学生的信息,然后调用 `sort` 函数对结构体数组进行排序。然后打开名为 "score.txt" 的文件,如果打开失败则输出错误信息并退出程序。如果打开成功,则通过 `fprintf` 函数将排序后的学生信息依次写入文件中。最后关闭文件并退出程序。
阅读全文