有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。c语言
时间: 2024-12-20 10:21:56 浏览: 4
在C语言中,你可以通过以下步骤实现这个功能:
1. 首先,创建一个结构体`Student`来存储学生的个人信息和成绩:
```c
typedef struct {
int student_id;
char name[50];
float score1, score2, score3;
} Student;
```
2. 定义一个函数读取用户输入,并处理计算平均分:
```c
void input_and_calculate(Student* students, int num_students) {
FILE* file = fopen("stud.txt", "w+"); // 打开或创建文件
for (int i = 0; i < num_students; i++) {
printf("请输入学生 %d 的信息(ID, 姓名, 成绩1, 成绩2, 成绩3):\n", i + 1);
scanf("%d", &students[i].student_id);
fgets(students[i].name, sizeof(students[i].name), stdin); // 注意处理换行符
scanf("%f", &students[i].score1);
scanf("%f", &students[i].score2);
scanf("%f", &students[i].score3);
// 计算平均分
float average_score = (students[i].score1 + students[i].score2 + students[i].score3) / 3;
fprintf(file, "%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",
students[i].student_id, students[i].name, students[i].score1, students[i].score2,
students[i].score3, average_score); // 写入文件
}
fclose(file);
}
```
3. 主程序部分调用上述函数并获取用户输入:
```c
int main() {
int num_students;
printf("请输入学生人数:");
scanf("%d", &num_students);
Student students[num_students]; // 存储数组
input_and_calculate(students, num_students);
return 0;
}
```
当你运行此程序时,它会提示用户输入学生的信息,然后计算平均分并将其保存到名为"stud.txt"的文本文件中。
阅读全文