C语言。学生成绩统计,某班有N(N<=30)个学生,共开设5门课程,按要求完成以下三个功能。输入要求如下:第一行为一个整数N,表示本班共N个人,接下来的N行中每行包含一个学生的信息,包括学号、课程1成绩、课程2成绩、课程3成绩、课程4成绩、课程5成绩,要求成绩保存在成绩数组,学号保存在学号数组。 (1)实现函数float AverCourse(int *pscore,int n,int m),求第m门课程的平均分,参数说明:pscore 是指向二维数组的列指针,参数m 表示该函数需要计算第n门课程的均分,参数m表示学生的人数,该函数的返回值为第m门课程的均分,要求保留2位小数。
时间: 2024-03-10 14:51:17 浏览: 57
好的,我可以帮你写一个 C 语言程序来实现这个功能。以下是代码:
```
#include <stdio.h>
// 求第m门课程的平均分
float AverCourse(int *pscore, int n, int m) {
float sum = 0;
for (int i = 0; i < n; i++) {
sum += *(pscore + i * 5 + m - 1);
}
return sum / n;
}
int main() {
int n;
scanf("%d", &n); // 输入学生人数
int score[n][5]; // 成绩数组
int id[n]; // 学号数组
for (int i = 0; i < n; i++) {
scanf("%d", &id[i]); // 输入学号
for (int j = 0; j < 5; j++) {
scanf("%d", &score[i][j]); // 输入成绩
}
}
float averScore = AverCourse(*score, n, 1);
printf("课程1平均分:%.2f\n", averScore); // 输出第1门课程的平均分
return 0;
}
```
程序中使用了一个函数 `AverCourse`,用来求第 m 门课程的平均分。该函数的参数 `pscore` 是一个指向成绩数组的列指针,参数 `n` 表示学生人数,参数 `m` 表示第几门课程。函数中使用了一个循环来遍历每个学生的该门课程成绩,并累加求和。最后返回平均分。
在 `main` 函数中,先输入学生人数 `n`,然后定义一个二维数组 `score` 来保存每个学生的成绩,定义一个一维数组 `id` 来保存每个学生的学号。使用两个嵌套的循环分别输入每个学生的学号和成绩。然后调用 `AverCourse` 函数来求第1门课程的平均分,并输出结果。
你可以根据需要修改代码来求其他门课程的平均分。
阅读全文