用c语言写一个程序输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出平均分最高的学生。
时间: 2023-11-20 14:05:25 浏览: 233
好的,以下是代码实现:
```c
#include <stdio.h>
// 计算每个学生的平均分
void average_score_of_each_student(float scores[][5], float averages[], int n)
{
for(int i=0; i<n; i++)
{
float sum = 0;
for(int j=0; j<5; j++)
{
sum += scores[i][j];
}
averages[i] = sum / 5;
}
}
// 计算每门课的平均分
void average_score_of_each_course(float scores[][5], float averages[])
{
for(int i=0; i<5; i++)
{
float sum = 0;
for(int j=0; j<10; j++)
{
sum += scores[j][i];
}
averages[i] = sum / 10;
}
}
// 找出平均分最高的学生
int find_student_with_highest_average(float averages[], int n)
{
int max_index = 0;
float max_average = averages[0];
for(int i=1; i<n; i++)
{
if(averages[i] > max_average)
{
max_index = i;
max_average = averages[i];
}
}
return max_index;
}
int main()
{
float scores[10][5]; // 10个学生5门课的成绩
float student_averages[10]; // 每个学生的平均分
float course_averages[5]; // 每门课的平均分
// 输入每个学生的成绩
for(int i=0; i<10; i++)
{
printf("请输入第%d个学生的5门课成绩:\n", i+1);
for(int j=0; j<5; j++)
{
scanf("%f", &scores[i][j]);
}
}
// 计算每个学生的平均分
average_score_of_each_student(scores, student_averages, 10);
// 计算每门课的平均分
average_score_of_each_course(scores, course_averages);
// 输出每个学生的平均分
printf("每个学生的平均分为:\n");
for(int i=0; i<10; i++)
{
printf("第%d个学生的平均分为:%f\n", i+1, student_averages[i]);
}
// 输出每门课的平均分
printf("每门课的平均分为:\n");
for(int i=0; i<5; i++)
{
printf("第%d门课的平均分为:%f\n", i+1, course_averages[i]);
}
// 找出平均分最高的学生
int max_index = find_student_with_highest_average(student_averages, 10);
printf("平均分最高的学生是第%d个学生,其平均分为%f\n", max_index+1, student_averages[max_index]);
return 0;
}
```
希望这可以帮助你。
阅读全文