数组指针作函数参数 输入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 <stdio.h>
#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 %.1f\n", sum[i], aver[i]);
}
}
我是谁?我在哪?这是个什么玩意?
我也不是很懂
但答案还是正确了