通过二维数组实现统计四个同学的五门学科成绩。求出全班单科成绩的总成绩和平均成绩,求出每位同学的总成绩和平均成绩
时间: 2024-11-30 09:21:44 浏览: 64
为了实现这个功能,我们可以创建一个二维数组来存储每个同学的五门学科的成绩,然后分别计算全班和每位同学的总成绩和平均成绩。以下是一个简单的示例代码:
```c
#include <stdio.h>
#define NUM_STUDENTS 4 // 同学数量
#define NUM_SUBJECTS 5 // 科目数量
typedef struct {
char name[20]; // 学生姓名
int scores[NUM_SUBJECTS]; // 成绩数组
} Student;
int main() {
Student students[NUM_STUDENTS] = {
{"Alice", {85, 90, 80, 75, 95}}, // 假设这是第一个学生的数据
{"Bob", {90, 95, 85, 80, 100}},
{"Charlie", {82, 88, 78, 72, 92}},
{"David", {76, 80, 70, 75, 85}}
};
// 全班总成绩和平均成绩
int total_score = 0;
float class_average = 0;
for (int i = 0; i < NUM_STUDENTS; i++) {
for (int j = 0; j < NUM_SUBJECTS; j++) {
total_score += students[i].scores[j];
}
float student_average = (float)total_score / NUM_SUBJECTS;
printf("Student %s's average score: %.2f\n", students[i].name, student_average);
total_score = 0;
// 求每位同学的总成绩和平均成绩
printf("%s's total score: %d\n", students[i].name, students[i].scores[NUM_SUBJECTS - 1]);
}
// 全班平均成绩
class_average /= NUM_STUDENTS;
printf("Class average score: %.2f\n", class_average);
return 0;
}
```
在这个例子中,我们首先定义了一个`Student`结构体,包含姓名和五门学科的成绩。接着在`main()`函数中遍历每一位同学的数组,计算他们的总成绩和平均分,并打印出来。最后计算全班的平均分。
如果你有其他关于这段代码的问题,或者需要进一步的帮助,请告诉我。
阅读全文