我需要帮助一个作业问题。
作业的描述是:
使用C语言设计程序,采用按引用传递的方法,对一个由M个学生和N个课程测验组成的班级的成绩进行统计,这些课程测验都具有相等的权重,每个测验的得分为10分。当执行程序时,该程序应按照以下顺序执行:
1.要求用户在键盘上输入学生数量M和测验数量N,其中M表示表示二维数组x [M] [N]中的行数,N表示列数。
2.要求用户在键盘上输入数组x [M] [N]的所有元素的值。
3.在控制台上显示输入的数组元素值的M行和N列。
4.生成并在console上显示一个一维数组p [M]的元素,其中该数组的每个元素p [M]代表每个M个学生整个学期的平均成绩。
5.生成并在console上显示一个一维数组q [N]的元素,其中q [N]的每个元素代表N个课程测验中班级中的平均成绩。
6.生成并在console上显示整个学期班级的平均成绩z。
这是我到目前为止完成的代码:
我遇到的问题是无法找到一种方法来分别对数组中的每一行求和。
作业的描述是:
使用C语言设计程序,采用按引用传递的方法,对一个由M个学生和N个课程测验组成的班级的成绩进行统计,这些课程测验都具有相等的权重,每个测验的得分为10分。当执行程序时,该程序应按照以下顺序执行:
1.要求用户在键盘上输入学生数量M和测验数量N,其中M表示表示二维数组x [M] [N]中的行数,N表示列数。
2.要求用户在键盘上输入数组x [M] [N]的所有元素的值。
3.在控制台上显示输入的数组元素值的M行和N列。
4.生成并在console上显示一个一维数组p [M]的元素,其中该数组的每个元素p [M]代表每个M个学生整个学期的平均成绩。
5.生成并在console上显示一个一维数组q [N]的元素,其中q [N]的每个元素代表N个课程测验中班级中的平均成绩。
6.生成并在console上显示整个学期班级的平均成绩z。
这是我到目前为止完成的代码:
#include <stdio.h>
#define students 300
#define quizzes 20
void averageGradeOfStudents(int M, int N, float p[], float *xPtr);
float averageGradeOfClass();
float averageGradeOfWholeClass();
int main() {
int M, N;
float x[students][quizzes];
printf("Enter the number students (Maximum: 300): ");
scanf_s("%d", &M);
printf("\nEnter the number of Quizzes (Maximum: 20): ");
scanf_s("%d", &N);
for (int i = 0; i < M; i++) {
for (int k = 0; k < N; k++) {
printf("Enter the grade for student %d, Quiz %d: ", i, k);
scanf_s("%f", &x[i][k]);
}
}
printf("\n--------------------------------------------------------------------------------\n\n");
for (int k = 1; k <= N; k++) {
printf("\t\tQuiz%d", k);
}
for (int i = 0; i < M; i++) {
printf("\nStudent%d Grades: ", i);
for (int k = 0; k < N; k++) {
printf("%.2f\t\t", x[i][k]);
}
}
printf("\n\n\n--------------------------------------------------------------------------------\n\n");
float p[students];
averageGradeOfStudents(M, N, p, &x[0][0]);
float q[quizzes];
float z;
getchar();
return 0;
}
void averageGradeOfStudents(int M, int N, float p[], float *xPtr) {
float grade[students];
for (int i = 0; i < M; i++) {
for (int k = 0; k < N; k++) {
grade[i] += *(xPtr + i);
}
}
for (int k = 0; k < M; k++) {
p[k] = grade[k] / N;
printf("The average grade of student%d is: %.2f\n\n", k, p[k]);
}
}
float averageGradeOfClass() {
}
float averageGradeOfWholeClass() {
}
我遇到的问题是无法找到一种方法来分别对数组中的每一行求和。