用c言编程:输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出平均分最高的学生。
时间: 2023-11-20 09:05:25 浏览: 81
好的,以下是符合你要求的C语言代码:
```c
#include <stdio.h>
#define N 10 /* 学生数 */
#define M 5 /* 课程数 */
/* 函数声明 */
void input_scores(float score[N][M]); /* 输入成绩 */
void avg_per_student(float score[N][M], float avg[N]); /* 每个学生的平均分 */
void avg_per_course(float score[N][M], float avg[M]); /* 每门课的平均分 */
int max_avg_student(float avg[N]); /* 平均分最高的学生 */
int main()
{
float score[N][M], avg_per_stu[N], avg_per_cou[M];
int max_avg_stu;
input_scores(score); /* 输入成绩 */
avg_per_student(score, avg_per_stu); /* 每个学生的平均分 */
printf("每个学生的平均分:\n");
for (int i = 0; i < N; i++)
printf("学生%d的平均分为%.2f分。\n", i+1, avg_per_stu[i]);
avg_per_course(score, avg_per_cou); /* 每门课的平均分 */
printf("每门课的平均分:\n");
for (int j = 0; j < M; j++)
printf("第%d门课的平均分为%.2f分。\n", j+1, avg_per_cou[j]);
max_avg_stu = max_avg_student(avg_per_stu); /* 平均分最高的学生 */
printf("平均分最高的学生为学生%d,平均分为%.2f分。\n", max_avg_stu+1, avg_per_stu[max_avg_stu]);
return 0;
}
/* 输入成绩 */
void input_scores(float score[N][M])
{
printf("请输入%d个学生的%d门课的成绩:\n", N, M);
for (int i = 0; i < N; i++)
{
printf("请输入第%d个学生的成绩:", i+1);
for (int j = 0; j < M; j++)
scanf("%f", &score[i][j]);
}
}
/* 每个学生的平均分 */
void avg_per_student(float score[N][M], float avg[N])
{
for (int i = 0; i < N; i++)
{
float sum = 0;
for (int j = 0; j < M; j++)
sum += score[i][j];
avg[i] = sum / M;
}
}
/* 每门课的平均分 */
void avg_per_course(float score[N][M], float avg[M])
{
for (int j = 0; j < M; j++)
{
float sum = 0;
for (int i = 0; i < N; i++)
sum += score[i][j];
avg[j] = sum / N;
}
}
/* 平均分最高的学生 */
int max_avg_student(float avg[N])
{
int max_index = 0;
for (int i = 1; i < N; i++)
if (avg[i] > avg[max_index])
max_index = i;
return max_index;
}
```
希望这份代码可以帮助到你。
阅读全文