本题要求实现一个函数,使用数组指针作函数参数,进行学生成绩的输入和统计输出。要求如下:输入m个学生(最多30人)n门课程(最多5门)的成绩,然后计算并打印每个学生各门课的总分和平均分。
时间: 2023-05-25 13:01:32 浏览: 272
A:
```c
#include<stdio.h>
void calc(int m, int n, int (*score)[5]) {
int i, j;
int sum, avg;
for(i=0; i<m; i++) {
sum = 0;
for(j=0; j<n; j++) {
sum += score[i][j];
}
avg = sum/n;
printf("第%d个学生的总分为:%d,平均分为:%d\n", i+1, sum, avg);
}
}
int main() {
int m=0, n=0;
scanf("%d%d", &m, &n);
int score[m][5];
int i, j;
for(i=0; i<m; i++) {
for(j=0; j<n; j++) {
scanf("%d", &score[i][j]);
}
}
calc(m, n, score);
return 0;
}
```
其中,int (*score)[5]表示指向数组的指针,也可以表示成int score[][5],即多维数组。在calc函数中,使用两层循环遍历每个学生每门课的成绩,并计算总分和平均分。最后输出每个学生的总分和平均分。在主函数中,先读入学生数和课程数,再读入每个学生每门课的成绩,最后调用calc函数计算并打印每个学生的总分和平均分。