数组指针作函数参数 输入m个学生(最多30人)n门课程(最多5门)的成绩,然后计算并打印每个学生各门课的总分和平均分。其中,m和n的值由用户从键盘输入。
输入格式:
输入顺序如下:
学生个数m 课程数n 学生1课程1分数 学生1课程2分数 ... 学生1课程n分数 学生2课程1分数 学生2课程2分数 ... 学生2课程n分数 ... 学生m课程1分数 学生m课程2分数 ... 学生m课程n分数
输出格式:
每个学生总分(整数) 平均分(实数,保留1位小数)
输入样例:
在这里给出一组输入。例如:
2 3 61 62 70 75 82 90
结尾无空行
输出样例:
在这里给出相应的输出。例如:
193 64.3 247 82.3
结尾无空行
答案
#include#define STUD 30 #define COURSE 5 void Input(int *pScore, int m, int n); void Total(int *pScore, int sum[], float aver[], int m, int n); void Print(int *pScore, int sum[], float aver[], int m, int n); int main() { int m, n, score[STUD][COURSE], sum[STUD]; float aver[STUD]; scanf("%d", &m); scanf("%d", &n); Input(*score, m, n); Total(*score, sum, aver, m, n); Print(*score, sum, aver, m, n); return 0; } void Input(int *pScore, int m, int n) { int i, j; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { scanf("%d", &pScore[i * n + j]); } } } void Total(int *pScore, int sum[], float aver[], int m, int n) { int i, j; for (i = 0; i < m; i++) { sum[i] = 0; for (j = 0; j < n; j++) { sum[i] = sum[i] + pScore[i * n + j]; } aver[i] = (float) sum[i] / n; } } void Print(int *pScore, int sum[], float aver[], int m, int n) { int i, j; for (i = 0; i < m; i++) { printf("%d %.1fn", sum[i], aver[i]); } }
我是谁?我在哪?这是个什么玩意?
我也不是很懂
但答案还是正确了



