c语言一个班5个学生,5门课程。要求: 1).求每门课程的平均分
时间: 2024-09-12 08:03:45 浏览: 45
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
在C语言中,如果要计算每个课程的平均分数,假设你有一个二维数组来存储每个学生的成绩,可以按照下面的步骤编写程序:
```c
#include <stdio.h>
#define MAX_STUDENTS 5
#define MAX_COURSES 5
// 示例数据结构 - 可能需要根据实际数据调整
typedef struct {
int student_id;
float scores[MAX_COURSES];
} Student;
void calculate_average(Student students[], int course_count) {
for (int i = 0; i < course_count; i++) {
float total_score = 0;
for (int j = 0; j < MAX_STUDENTS; j++) {
if (students[j].scores[i] != 0) { // 避免除以零的情况
total_score += students[j].scores[i];
}
}
if (total_score != 0) {
float average = total_score / MAX_STUDENTS;
printf("课程 %d 的平均分为: %.2f\n", i+1, average);
} else {
printf("课程 %d 没有评分数据。\n", i+1);
}
}
}
int main() {
Student students[MAX_STUDENTS]; // 学生信息,此处仅为演示,需填充实际分数
int courses_with_scores[MAX_COURSES] = {0}; // 初始时所有课程都没有评分
// 填充学生成绩
for (int i = 0; i < MAX_STUDENTS; i++) {
for (int j = 0; j < MAX_COURSES; j++) {
printf("给学生 %d 在第%d门课的成绩: ", i+1, j+1);
scanf("%f", &students[i].scores[j]);
if (students[i].scores[j] > 0) {
courses_with_scores[j]++;
}
}
}
// 只统计有评分的课程
for (int i = 0; i < MAX_COURSES; i++) {
if (courses_with_scores[i]) {
calculate_average(students, courses_with_scores);
}
}
return 0;
}
```
这个程序首先定义了一个学生结构体包含每个学生的ID和他们的成绩数组。`calculate_average`函数用于遍历每门课程并计算平均分。在`main`函数中,用户会输入每个学生的每门课程分数,程序会过滤掉没有评分的数据。
阅读全文