c语言将班上同学本学期8门课程,其中包含4门核心课,其成绩全部存储到数组中,并将数组中的数据存储到文件
时间: 2024-05-01 07:23:26 浏览: 92
下面是一个示例代码,可以将班上同学本学期8门课程成绩存储到数组中,并将数组中的数据存储到文件中:
```c
#include <stdio.h>
#define MAX_STUDENTS 50 // 最大学生数
#define MAX_COURSES 8 // 最大课程数
int main() {
int scores[MAX_STUDENTS][MAX_COURSES]; // 存储成绩的二维数组
int num_students, num_courses; // 学生数和课程数
int i, j;
FILE *fp;
// 获取学生数和课程数
printf("请输入学生数和课程数(用空格分隔):");
scanf("%d %d", &num_students, &num_courses);
// 获取成绩
printf("请依次输入每个学生的成绩(用空格分隔):\n");
for (i = 0; i < num_students; i++) {
printf("学生 %d 的成绩:", i+1);
for (j = 0; j < num_courses; j++) {
scanf("%d", &scores[i][j]);
}
}
// 将成绩存储到文件中
fp = fopen("scores.txt", "w");
if (fp == NULL) {
printf("无法打开文件!\n");
return 1;
}
fprintf(fp, "%d %d\n", num_students, num_courses); // 先将学生数和课程数写入文件
for (i = 0; i < num_students; i++) {
for (j = 0; j < num_courses; j++) {
fprintf(fp, "%d ", scores[i][j]);
}
fprintf(fp, "\n"); // 每个学生的成绩占一行
}
fclose(fp);
printf("成绩已存储到 scores.txt 文件中。\n");
return 0;
}
```
此代码中,我们使用了一个二维数组 `scores` 来存储成绩。通过 `scanf` 函数获取学生数和课程数,再通过嵌套循环获取每个学生的成绩,最后将成绩存储到文件中。文件的格式为:
```
num_students num_courses
score1_1 score1_2 ... score1_num_courses
score2_1 score2_2 ... score2_num_courses
...
scorenum_students_1 scorenum_students_2 ... scorenum_students_num_courses
```
其中 `num_students` 和 `num_courses` 是学生数和课程数,后面每行表示一个学生的成绩,共有 `num_students` 行,每行有 `num_courses` 个成绩。
阅读全文