输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出平均分最高的学生。用C语言编写程序
时间: 2023-11-20 18:04:45 浏览: 110
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
好的,下面是C语言的程序实现:
```c
#include <stdio.h>
#define N 10 // 学生数
#define M 5 // 课程数
// 求每个学生的平均分
void avg_stu(double score[N][M])
{
double sum;
for (int i = 0; i < N; i++)
{
sum = 0;
for (int j = 0; j < M; j++)
sum += score[i][j];
printf("第%d个学生的平均分为%.2f\n", i + 1, sum / M);
}
}
// 求每门课的平均分
void avg_course(double score[N][M])
{
double sum;
for (int j = 0; j < M; j++)
{
sum = 0;
for (int i = 0; i < N; i++)
sum += score[i][j];
printf("第%d门课的平均分为%.2f\n", j + 1, sum / N);
}
}
// 找出平均分最高的学生
void find_highest(double score[N][M])
{
double max = 0, sum;
int max_stu;
for (int i = 0; i < N; i++)
{
sum = 0;
for (int j = 0; j < M; j++)
sum += score[i][j];
if (sum / M > max)
{
max = sum / M;
max_stu = i + 1;
}
}
printf("平均分最高的学生为第%d个学生,平均分为%.2f\n", max_stu, max);
}
int main()
{
double score[N][M];
printf("请输入每个学生的成绩(按照学生编号和课程编号输入):\n");
for (int i = 0; i < N; i++)
{
printf("第%d个学生的成绩:", i + 1);
for (int j = 0; j < M; j++)
scanf("%lf", &score[i][j]);
}
avg_stu(score);
avg_course(score);
find_highest(score);
return 0;
}
```
这个程序先让用户输入每个学生的成绩,然后分别调用 `avg_stu()`、`avg_course()` 和 `find_highest()` 函数求每个学生的平均分、每门课的平均分和平均分最高的学生。其中,`avg_stu()` 和 `avg_course()` 函数都是用两个循环遍历二维数组来实现的,而 `find_highest()` 函数则是找出平均分最高的学生的编号,然后输出该学生的平均分。注意,程序中输入和输出数据的格式与题目要求一致,可以根据需要进行修改。
阅读全文