编写程序:有5个学生,每个学生由三门课的成绩,从键盘输入以下数据(包括学号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
时间: 2023-06-05 07:47:12 浏览: 174
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
好的,以下是编写程序的步骤:
1. 定义一个结构体,包含学号、姓名、三门课成绩和平均成绩。
2. 从键盘输入5个学生的数据,包括学号、姓名、三门课成绩,并计算出平均成绩。
3. 将每个学生的数据和平均成绩存放在结构体数组中。
4. 将结构体数组中的数据写入磁盘文件“stud”中。
下面是示例代码:
#include <stdio.h>
#include <stdlib.h>
#define NUM_STUDENTS 5
#define NUM_COURSES 3
typedef struct {
int id;
char name[20];
int scores[NUM_COURSES];
float avg_score;
} Student;
int main() {
Student students[NUM_STUDENTS];
FILE *fp;
// 从键盘输入每个学生的数据
for (int i = ; i < NUM_STUDENTS; i++) {
printf("请输入第%d个学生的学号、姓名和三门课成绩:\n", i+1);
scanf("%d%s%d%d%d", &students[i].id, students[i].name, &students[i].scores[], &students[i].scores[1], &students[i].scores[2]);
// 计算平均成绩
float sum = ;
for (int j = ; j < NUM_COURSES; j++) {
sum += students[i].scores[j];
}
students[i].avg_score = sum / NUM_COURSES;
}
// 将数据写入磁盘文件
fp = fopen("stud", "w");
if (fp == NULL) {
printf("无法打开文件!\n");
exit(1);
}
for (int i = ; i < NUM_STUDENTS; i++) {
fprintf(fp, "%d %s %d %d %d %.2f\n", students[i].id, students[i].name, students[i].scores[], students[i].scores[1], students[i].scores[2], students[i].avg_score);
}
fclose(fp);
return ;
}
阅读全文