C语言代码实现 8、输入5个学生3门课的成绩,分别用函数实现下列功能: 计算每个学生的平均分; 计算每门课的平均分; 找出所有15个分数中最高的分数所对应的学生和课程.
时间: 2024-01-01 10:04:43 浏览: 87
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
下面是实现上述功能的C语言代码:
```c
#include <stdio.h>
// 计算每个学生的平均分
void avg_per_student(float score[][3], float avg[])
{
for (int i = 0; i < 5; i++)
{
float sum = 0;
for (int j = 0; j < 3; j++)
{
sum += score[i][j];
}
avg[i] = sum / 3;
}
}
// 计算每门课的平均分
void avg_per_course(float score[][3], float avg[])
{
for (int i = 0; i < 3; i++)
{
float sum = 0;
for (int j = 0; j < 5; j++)
{
sum += score[j][i];
}
avg[i] = sum / 5;
}
}
// 找出所有15个分数中最高的分数所对应的学生和课程
void max_score(float score[][3], int *student, int *course)
{
float max = score[0][0];
*student = 0;
*course = 0;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 3; j++)
{
if (score[i][j] > max)
{
max = score[i][j];
*student = i + 1;
*course = j + 1;
}
}
}
}
int main()
{
float score[5][3];
float avg_per_student[5];
float avg_per_course[3];
int max_score_student;
int max_score_course;
// 输入5个学生3门课的成绩
printf("请输入5个学生3门课的成绩:\n");
for (int i = 0; i < 5; i++)
{
printf("请输入第%d个学生的成绩:\n", i+1);
for (int j = 0; j < 3; j++)
{
scanf("%f", &score[i][j]);
}
}
// 计算每个学生的平均分
avg_per_student(score, avg_per_student);
printf("\n每个学生的平均分为:\n");
for (int i = 0; i < 5; i++)
{
printf("第%d个学生的平均分为:%.2f\n", i+1, avg_per_student[i]);
}
// 计算每门课的平均分
avg_per_course(score, avg_per_course);
printf("\n每门课的平均分为:\n");
for (int i = 0; i < 3; i++)
{
printf("第%d门课的平均分为:%.2f\n", i+1, avg_per_course[i]);
}
// 找出所有15个分数中最高的分数所对应的学生和课程
max_score(score, &max_score_student, &max_score_course);
printf("\n最高分数为:%.2f\n", score[max_score_student-1][max_score_course-1]);
printf("最高分数对应的学生为:第%d名\n", max_score_student);
printf("最高分数对应的课程为:第%d门\n", max_score_course);
return 0;
}
```
注意:本代码中使用了函数来实现每个功能,使代码更加清晰易懂。
阅读全文