c语言设计一个程序统计某个班全体学生3门课的考试成绩。要求能输入学生人数,并按编号从小到大的顺序依次输入学生的成绩,再统计出每门课程的全班总分、平均分及每个考生所有考试的总分和平均分。 输入格式: 第一行输入学生人数,从第二行开始按相同的课程顺序依次输入学生每门课的成绩,分数为单精度数。 输出格式: 首先分行输出每个学生的总分及平均分,然后在输出全班每门课的总分及平均分。 输入样例: 在这里给出一组输入。例如: 3 67 67 67 78 78 78 90 90 90 输出样例: 在这里给出相应的输出。例如: 第0个学生总分201.0 平均分为67.0 第1个学生总分234.0 平均分为78.0 第2个学生总分270.0 平均分为90.0 第0门课全班总分235.0 平均分为78.3 第1门课全班总分235.0 平均分为78.3 第2门课全班总分235.0 平均分为78.3
时间: 2024-01-22 09:21:25 浏览: 133
以下是 C 语言程序实现:
```c
#include <stdio.h>
int main()
{
int n, i, j;
float score[100][3]; // 用二维数组存储每个学生的三门成绩
float stu_sum[100] = {0}; // 存储每个学生的总分
float stu_avg[100] = {0}; // 存储每个学生的平均分
float sub_sum[3] = {0}; // 存储每门课的总分
float sub_avg[3] = {0}; // 存储每门课的平均分
printf("请输入学生人数:");
scanf("%d", &n);
// 输入每个学生的三门成绩
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的成绩:", i);
for (j = 0; j < 3; j++) {
scanf("%f", &score[i][j]);
stu_sum[i] += score[i][j]; // 统计每个学生的总分
sub_sum[j] += score[i][j]; // 统计每门课的总分
}
stu_avg[i] = stu_sum[i] / 3; // 计算每个学生的平均分
}
// 输出每个学生的总分和平均分
for (i = 0; i < n; i++) {
printf("第%d个学生总分%.1f 平均分为%.1f\n", i, stu_sum[i], stu_avg[i]);
}
// 计算每门课的平均分
for (j = 0; j < 3; j++) {
sub_avg[j] = sub_sum[j] / n;
}
// 输出每门课的总分和平均分
for (j = 0; j < 3; j++) {
printf("第%d门课全班总分%.1f 平均分为%.1f\n", j, sub_sum[j], sub_avg[j]);
}
return 0;
}
```
注意事项:
1. 本程序使用了二维数组存储每个学生的三门成绩,其中第一维是学生的编号,第二维是成绩的编号。数组下标从 0 开始。
2. 在程序中使用了多个数组统计各种数据,包括每个学生的总分和平均分、每门课的总分和平均分等。
3. 在输入每个学生的成绩时,使用了两层循环,分别输入每个学生的三门成绩。
4. 在输出每个学生的总分和平均分时,使用了数组遍历和格式化输出。
5. 在输出每门课的总分和平均分时,同样使用了数组遍历和格式化输出。
阅读全文