用C语言写一个程序,从键盘输入一位同学的学号及其高数、英语、C语言3门课的成绩,计算平时分,并写入score_avg.txt中。
时间: 2024-10-09 13:10:18 浏览: 49
c代码-从键盘输入一个班(全班人数在15~20之间)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能: (1)录入每个学生的学号(学号:2016001~2016020)和考试成绩; (2)计算课程的总分和平均分;
5星 · 资源好评率100%
在C语言中,你可以按照以下步骤编写一个简单的程序来完成这个任务:
```c
#include <stdio.h>
#include <stdlib.h> // 引入文件操作函数
// 定义结构体存储学生信息
typedef struct {
int student_id;
float math_score;
float english_score;
float c_language_score;
} Student;
void input_student_info(Student *student) {
printf("请输入学生的学号:");
scanf("%d", &student->student_id);
printf("请输入高数成绩:");
scanf("%f", &student->math_score);
printf("请输入英语成绩:");
scanf("%f", &student->english_score);
printf("请输入C语言成绩:");
scanf("%f", &student->c_language_score);
}
float calculate_average(Student student) {
return (student.math_score + student.english_score + student.c_language_score) / 3.0;
}
int main() {
Student student;
input_student_info(&student);
float average = calculate_average(student);
FILE* file = fopen("score_avg.txt", "w"); // 打开文件用于写入
if (file == NULL) {
perror("Error opening file");
exit(1);
}
fprintf(file, "学生ID: %d\n", student.student_id);
fprintf(file, "平均成绩: %.2f\n", average); // 保留两位小数
fclose(file); // 关闭文件
printf("学生的平均成绩已写入到score_avg.txt中。\n");
return 0;
}
```
在这个程序中,我们首先定义了一个结构体`Student`来存储学生的学号和三门课程的成绩。然后,通过函数`input_student_info`从用户那里获取输入。接着计算平均分数并将其写入`score_avg.txt`文件中。
注意,上述程序假设了所有输入都是有效的数值。在实际应用中,可能需要添加错误检查和处理机制。
阅读全文