一个班级有M名同学,每位同学有N门课程的成绩,求每位同学的总分,并求每门课的平均分。 已给出部分代码,请给出完整程序。
时间: 2024-05-30 18:13:25 浏览: 205
好的,以下是完整程序:
#include <stdio.h>
#define MAX_STUDENTS 100 // 班级中最多有100名学生
#define MAX_COURSES 10 // 每名学生最多修10门课程
int main() {
int m, n; // m为班级中的学生人数,n为每名学生修的课程数
int i, j; // 循环变量
double scores[MAX_STUDENTS][MAX_COURSES]; // 存储成绩
double total_scores[MAX_STUDENTS] = {0}; // 存储每名学生的总分
double avg_scores[MAX_COURSES] = {0}; // 存储每门课程的平均分
printf("请输入班级学生人数m和每名学生修的课程数n(中间用空格分隔):");
scanf("%d %d", &m, &n);
printf("请依次输入每位同学的%d门课程成绩(每门成绩之间用空格分隔,输入完成后按回车键):\n", n);
for (i = 0; i < m; i++) { // 循环读入每位同学的成绩
printf("第%d名同学:", i+1);
for (j = 0; j < n; j++) {
scanf("%lf", &scores[i][j]); // 读入成绩
total_scores[i] += scores[i][j]; // 累加总分
avg_scores[j] += scores[i][j]; // 累加课程总分
}
}
printf("每位同学的总分:\n");
for (i = 0; i < m; i++) { // 循环输出每位同学的总分
printf("第%d名同学的总分为%.2lf分\n", i+1, total_scores[i]);
}
printf("每门课程的平均分:\n");
for (j = 0; j < n; j++) { // 循环输出每门课程的平均分
printf("第%d门课程的平均分为%.2lf分\n", j+1, avg_scores[j]/m);
}
return 0;
}
在主函数中,我们首先定义了MAX_STUDENTS和MAX_COURSES两个常量,分别表示班级中最多有100名学生和每名学生最多修10门课程,然后定义了一些数组来存储成绩和计算结果。接下来先提示用户输入班级学生人数m和每名学生修的课程数n,然后循环读入每位同学的成绩,并在循环过程中累加每名学生的总分和每门课程的总分。最后输出每位同学的总分和每门课程的平均分。
注:本程序假定用户输入的成绩都是合法的数字,没有做输入检查。
阅读全文