通过二维数组实现,统计四个同学的五门学科的成绩(c,c#,java,html,sql). 要求 1:求出全班单科成绩的总成绩和平均成绩。要求 2:求出每位同学的的总成绩和平均成绩。
时间: 2024-12-14 12:27:35 浏览: 8
要通过二维数组实现这个功能,我们可以创建一个包含四位同学各五门学科成绩的数组,然后分别计算全班和每位同学的总成绩、平均成绩。假设我们有以下结构:
```c
typedef struct {
char name[20]; // 同学姓名
int scores[5]; // 五门学科成绩(从0开始索引)
} Student;
Student students[4] = {
{"Tom", {85, 90, 88, 75, 92}},
{"Jerry", {92, 96, 90, 80, 88}},
{"Spike", {80, 78, 75, 85, 90}},
{"Tyke", {78, 82, 80, 70, 85}}
};
```
现在我们可以编写函数来计算所需的数据:
```c
#include <stdio.h>
// 计算一位同学的总成绩和平均成绩
void calculate_student_total_and_average(Student student[], int index) {
int total_score = 0;
float average_score = 0;
for (int i = 0; i < 5; i++) {
total_score += student[index].scores[i];
average_score += (float)student[index].scores[i] / 5;
}
printf("学生 %s 的总成绩:%.0f\n", student[index].name, total_score);
printf("学生 %s 的平均成绩:%.2f\n", student[index].name, average_score);
}
// 计算全班的总成绩和平均成绩
void calculate_class_total_and_average(Student students[], int num_students) {
int class_total_score = 0;
float class_average_score = 0;
for (int i = 0; i < num_students; i++) {
class_total_score += students[i].total_score;
class_average_score += students[i].average_score;
}
class_total_score /= num_students;
class_average_score /= num_students;
printf("全班总成绩:%.0f\n", class_total_score);
printf("全班平均成绩:%.2f\n", class_average_score);
}
int main() {
// 计算每位同学的总成绩和平均成绩
for (int i = 0; i < 4; i++) {
calculate_student_total_and_average(students, i);
}
// 计算全班的总成绩和平均成绩
calculate_class_total_and_average(students, 4);
return 0;
}
```
这个程序首先定义了一个`calculate_student_total_and_average`函数来计算每位同学的成绩,接着定义了`calculate_class_total_and_average`函数来计算全班的总分和平均分。在主函数`main`中调用这两个函数。
运行这段代码后,你会得到每位同学的总成绩和平均成绩,以及全班的总成绩和平均成绩。
阅读全文