C语言程序设计有3个学生2门课的成绩,实现下列功能:4 (1)输入3个学生2门课的成绩到二维数组中;+(2)计算并输出每个学生的平均分;+ (3)计算并输出每门课的平均分;(15分)+
时间: 2024-02-26 20:58:22 浏览: 50
好的,这是一个简单的二维数组操作问题,下面是C语言程序的实现:
```c
#include <stdio.h>
#define STUDENTS 3
#define COURSES 2
int main() {
int scores[STUDENTS][COURSES];
float student_avg[STUDENTS];
float course_avg[COURSES];
// 输入成绩
printf("请输入%d个学生的%d门课程成绩:\n", STUDENTS, COURSES);
for (int i = 0; i < STUDENTS; i++) {
printf("请输入第%d个学生的成绩:\n", i + 1);
for (int j = 0; j < COURSES; j++) {
scanf("%d", &scores[i][j]);
}
}
// 计算每个学生的平均分
for (int i = 0; i < STUDENTS; i++) {
int sum = 0;
for (int j = 0; j < COURSES; j++) {
sum += scores[i][j];
}
student_avg[i] = sum / (float) COURSES;
}
// 计算每门课的平均分
for (int j = 0; j < COURSES; j++) {
int sum = 0;
for (int i = 0; i < STUDENTS; i++) {
sum += scores[i][j];
}
course_avg[j] = sum / (float) STUDENTS;
}
// 输出结果
printf("每个学生的平均分是:\n");
for (int i = 0; i < STUDENTS; i++) {
printf("第%d个学生的平均分是%.2f\n", i + 1, student_avg[i]);
}
printf("每门课的平均分是:\n");
for (int j = 0; j < COURSES; j++) {
printf("第%d门课的平均分是%.2f\n", j + 1, course_avg[j]);
}
return 0;
}
```
代码解析:
首先定义了一个二维数组`scores`用于存储成绩,同时定义了两个一维数组`student_avg`和`course_avg`用于存储每个学生的平均分和每门课的平均分。
然后通过两个for循环分别输入每个学生的成绩,将其存储到二维数组中。
接着通过两个for循环计算每个学生的平均分和每门课的平均分,将结果分别存储到对应的一维数组中。
最后通过两个for循环输出每个学生和每门课的平均分。
希望我的回答能够帮到你!
阅读全文