程序设计:统计某班全体学生3门课的考试成绩。要求:能输入学生人数,并按编号从小到大的顺序依次输入学生的成绩,再统计出每门课程的全班总分、平均分及每个学生所有考试的总分和平均分。c语言
时间: 2023-06-12 19:06:07 浏览: 180
以下是一个简单的 C 语言程序,可以完成你的要求:
```c
#include <stdio.h>
#define MAX_STUDENTS 50
int main() {
int num_students, i, j;
float scores[MAX_STUDENTS][3];
float total_scores[3] = {0, 0, 0};
float total_averages[3] = {0, 0, 0};
printf("请输入学生人数(不超过 %d 人):", MAX_STUDENTS);
scanf("%d", &num_students);
// 输入学生成绩
for (i = 0; i < num_students; i++) {
printf("请输入第 %d 个学生的成绩(数学 英语 物理):", i + 1);
for (j = 0; j < 3; j++) {
scanf("%f", &scores[i][j]);
total_scores[j] += scores[i][j];
}
}
// 计算全班总分和平均分
for (j = 0; j < 3; j++) {
total_averages[j] = total_scores[j] / num_students;
printf("全班 %d 门课程的总分为 %.2f,平均分为 %.2f\n", j + 1, total_scores[j], total_averages[j]);
}
// 计算每个学生的总分和平均分
for (i = 0; i < num_students; i++) {
float total_score = 0;
for (j = 0; j < 3; j++) {
total_score += scores[i][j];
}
printf("第 %d 个学生的总分为 %.2f,平均分为 %.2f\n", i + 1, total_score, total_score / 3);
}
return 0;
}
```
程序中使用了一个二维数组 `scores` 来存储每个学生的成绩,其中第一维表示学生编号,第二维表示课程编号。程序还使用了两个数组 `total_scores` 和 `total_averages` 来分别存储全班每门课程的总分和平均分。在输入学生成绩时,程序同时将每个学生的成绩加入到全班总分中。在输出全班总分和平均分时,程序直接使用这两个数组的值即可。在计算每个学生的总分和平均分时,程序通过遍历 `scores` 数组来计算。
阅读全文