输入10个学生5门课的成绩,分别用函数实现下列功能。计算每个学生的平均分计算每门课的平均分找出所有50个分数中最高的分数所对应的学生和课程。用C语言表示
时间: 2024-01-01 21:04:42 浏览: 113
以下是实现上述功能的C语言代码:
```c
#include <stdio.h>
#define STUDENT_NUM 10
#define COURSE_NUM 5
void get_grades(int grades[STUDENT_NUM][COURSE_NUM]) {
printf("请输入%d个学生%d门课的成绩:\n", STUDENT_NUM, COURSE_NUM);
for (int i = 0; i < STUDENT_NUM; i++) {
printf("请输入第%d个学生的%d门课成绩:", i + 1, COURSE_NUM);
for (int j = 0; j < COURSE_NUM; j++) {
scanf("%d", &grades[i][j]);
}
}
}
void calc_student_avg(int grades[STUDENT_NUM][COURSE_NUM], float student_avg[STUDENT_NUM]) {
for (int i = 0; i < STUDENT_NUM; i++) {
int sum = 0;
for (int j = 0; j < COURSE_NUM; j++) {
sum += grades[i][j];
}
student_avg[i] = (float)sum / COURSE_NUM;
}
}
void calc_course_avg(int grades[STUDENT_NUM][COURSE_NUM], float course_avg[COURSE_NUM]) {
for (int j = 0; j < COURSE_NUM; j++) {
int sum = 0;
for (int i = 0; i < STUDENT_NUM; i++) {
sum += grades[i][j];
}
course_avg[j] = (float)sum / STUDENT_NUM;
}
}
void find_highest_grade(int grades[STUDENT_NUM][COURSE_NUM], int *highest_grade, int *highest_student, int *highest_course) {
*highest_grade = -1;
for (int i = 0; i < STUDENT_NUM; i++) {
for (int j = 0; j < COURSE_NUM; j++) {
if (grades[i][j] > *highest_grade) {
*highest_grade = grades[i][j];
*highest_student = i;
*highest_course = j;
}
}
}
}
int main() {
int grades[STUDENT_NUM][COURSE_NUM];
float student_avg[STUDENT_NUM];
float course_avg[COURSE_NUM];
int highest_grade, highest_student, highest_course;
get_grades(grades);
calc_student_avg(grades, student_avg);
calc_course_avg(grades, course_avg);
find_highest_grade(grades, &highest_grade, &highest_student, &highest_course);
printf("每个学生的平均分为:\n");
for (int i = 0; i < STUDENT_NUM; i++) {
printf("第%d个学生的平均分为%.2f\n", i + 1, student_avg[i]);
}
printf("每门课的平均分为:\n");
for (int j = 0; j < COURSE_NUM; j++) {
printf("第%d门课的平均分为%.2f\n", j + 1, course_avg[j]);
}
printf("最高分为%d,对应的学生为第%d个学生,对应的课程为第%d门课\n", highest_grade, highest_student + 1, highest_course + 1);
return 0;
}
```
在这个代码中,我们首先定义了10个学生5门课的成绩的数组,然后通过 `get_grades()` 函数获取用户输入的成绩。
接着,我们使用 `calc_student_avg()` 函数计算每个学生的平均分,并使用 `calc_course_avg()` 函数计算每门课的平均分。
最后,我们使用 `find_highest_grade()` 函数找出所有50个分数中最高的分数所对应的学生和课程,并输出结果。
阅读全文