用C语言编程,输入10个学生5门课的成绩,分别用函数计算每个学生的平均分和每门课的平均分,
时间: 2024-02-18 11:04:16 浏览: 76
好的,这是一个稍微复杂一些的C语言编程题目,下面是示例代码:
```c
#include <stdio.h>
void calc_stu_avg(float *grades, int n) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += grades[i];
}
printf("%.2f", sum / n);
}
void calc_sub_avg(float (*grades)[5], int n) {
for (int i = 0; i < 5; i++) {
printf("第%d门课的平均分为:", i + 1);
float sum = 0;
for (int j = 0; j < n; j++) {
sum += grades[j][i];
}
printf("%.2f\n", sum / n);
}
}
int main() {
float grades[10][5];
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的5门成绩:\n", i + 1);
for (int j = 0; j < 5; j++) {
scanf("%f", &grades[i][j]);
}
}
printf("每个学生的平均分分别为:\n");
for (int i = 0; i < 10; i++) {
printf("第%d个学生的平均分为:", i + 1);
calc_stu_avg(grades[i], 5);
printf("\n");
}
printf("每门课的平均分分别为:\n");
calc_sub_avg(grades, 10);
return 0;
}
```
上面的代码中,我们定义了两个函数 `calc_stu_avg` 和 `calc_sub_avg` 分别用来计算每个学生的平均分和每门课的平均分。在 `main` 函数中,我们定义了一个二维数组 `grades` 来存储10个学生的5门成绩。接着,我们使用两个嵌套的循环分别输入每个学生的5门成绩,并将其存储到 `grades` 数组中。
然后,我们先使用一个循环遍历每个学生,将该学生的5门成绩存储到一个一维数组中,然后调用 `calc_stu_avg` 函数计算平均分并输出即可。
最后,我们再使用 `calc_sub_avg` 函数计算每门课的平均分并输出即可。在该函数中,我们使用两个嵌套的循环分别遍历每个学生在该门课的成绩,并计算总分。最后再除以学生数即可得到平均分。
阅读全文