本题要求实现一个函数,使用数组指针作函数参数,进行学生成绩的输入和统计输出。要求如下:输入m个学生(最多30人)n门课程(最多5门)的成绩,然后计算并打印每个学生各门课的总分和平均分。 函数接口定义: void Array_InputCalculate(int *p, int m, int n); 其中:p为指向学生成绩的数组指针,m和n依次是学生人数、课程数,其值分别由用户从键盘输入。
时间: 2024-03-20 15:40:02 浏览: 92
好的,可以开始回答你的问题了。这是一个可以实现学生成绩输入和统计输出的函数:
```c++
void Array_InputCalculate(int *p, int m, int n) {
int i, j, sum;
float avg;
for (i = 0; i < m; i++) {
sum = 0;
printf("请输入第%d个学生的%d门课成绩:\n", i + 1, n);
for (j = 0; j < n; j++) {
scanf("%d", p + i * n + j);
sum += *(p + i * n + j);
}
avg = (float) sum / n;
printf("第%d个学生的总分为:%d,平均分为:%.2f\n", i + 1, sum, avg);
}
}
```
这个函数的作用是,根据输入的学生人数 m 和课程数 n,使用数组指针 p 作为参数,循环输入每个学生的成绩,并计算每个学生各门课的总分和平均分,最后输出结果。
在函数中,我们使用了两个循环,一个用于循环每个学生,一个用于循环每个学生的每门课程。在循环每门课程时,我们使用指针 p + i * n + j 来访问每个学生每门课的成绩,其中 i 表示当前学生的编号,j 表示当前课程的编号。
最后,我们计算每个学生的总分和平均分,并输出到屏幕上。
希望这个函数对你有帮助!
阅读全文