1、编写程序,有3个班组,每组有10名学生,输入每位同学的英语成绩。设计一个函数,计算出各班组的平均英语成绩以及全体同学的平均英语成绩。。用C语言
时间: 2025-01-05 17:38:01 浏览: 7
在C语言中,你可以使用结构体(struct)来表示每个学生的信息,数组来存储同班组的学生,并定义两个函数,一个用于计算班组平均分,另一个用于计算所有学生的平均分。下面是一个简单的示例:
```c
#include <stdio.h>
// 定义学生结构体
typedef struct {
char name[20];
int group; // 班组编号,从1到3
float english_score;
} Student;
// 计算班组平均分
float calculate_group_average(Student group_students[], int num_students, int group_num) {
float sum = 0.0;
for (int i = 0; i < num_students; i++) {
if (group_students[i].group == group_num)
sum += group_students[i].english_score;
}
return sum / num_students;
}
// 计算所有学生的平均分
float calculate_total_average(Student all_students[], int total_students) {
float total_sum = 0.0;
for (int i = 0; i < total_students; i++)
total_sum += all_students[i].english_score;
return total_sum / total_students;
}
int main() {
const int NUM_GROUPS = 3;
const int STUDENTS_PER_GROUP = 10;
Student groups[NUM_GROUPS][STUDENTS_PER_GROUP]; // 存储数据
// 输入每位同学的成绩
for (int i = 0; i < NUM_GROUPS * STUDENTS_PER_GROUP; i++) {
printf("请输入第 %d 名学生的姓名、班级和英语成绩: ", i + 1);
scanf("%s%d%f", &groups[i / STUDENTS_PER_GROUP][i % STUDENTS_PER_GROUP].name,
&groups[i / STUDENTS_PER_GROUP][i % STUDENTS_PER_GROUP].group,
&groups[i / STUDENTS_PER_GROUP][i % STUDENTS_PER_GROUP].english_score);
}
// 计算并打印各班组平均分
for (int group = 1; group <= NUM_GROUPS; group++) {
float avg = calculate_group_average(groups[group - 1], STUDENTS_PER_GROUP, group);
printf("班组 %d 的平均英语成绩: %.2f\n", group, avg);
}
// 所有学生的平均分
float total_avg = calculate_total_average(groups[0], NUM_GROUPS * STUDENTS_PER_GROUP);
printf("全体同学的平均英语成绩: %.2f\n", total_avg);
return 0;
}
```
阅读全文