输入一个学生三门课的成绩,输出这个学生三门课的平均分,要求保留一位小数 用c语言
时间: 2024-09-23 07:16:38 浏览: 121
在C语言中,你可以通过以下几个步骤计算学生的三门课程平均分并保留一位小数:
```c
#include <stdio.h>
#define MAX_SUBJECTS 3 // 设定最多有3门课
// 定义结构体表示学生信息
typedef struct {
float scores[MAX_SUBJECTS]; // 存储每门课成绩
int num_subjects; // 学生选修的课程数量
} Student;
void calculate_average(Student student) {
if (student.num_subjects == 0) { // 避免除以零的情况
printf("学生未选择任何课程,无法计算平均分。\n");
return;
}
float sum = 0;
for (int i = 0; i < student.num_subjects; i++) {
sum += student.scores[i];
}
float average = sum / student.num_subjects;
printf("学生的三门课程平均分为: %.1f\n", average);
}
int main() {
Student student;
printf("请输入学生三门课程的成绩,每输入一门课的成绩按回车键,输入完毕后输入 'q' 结束:\n");
while (scanf("%f", &student.scores[student.num_subjects]) == 1 && student.num_subjects < MAX_SUBJECTS) {
student.num_subjects++;
}
// 检查用户是否输入了所有成绩
if (student.num_subjects == 0 || getchar() != 'q') {
printf("输入格式错误或结束标记输入不正确。\n");
} else {
calculate_average(student);
}
return 0;
}
```
在这个程序中,我们首先定义了一个包含成绩数组和选修课程数的结构体`Student`,然后创建了一个函数`calculate_average`来计算平均分,并在`main`函数中获取用户的输入,最后调用该函数。
阅读全文