输人10个学生5门课的成绩,分别用函数实现下列功能:①计算每个学生平均分;②计算每门课的平均分; ③找出所有50个分数中最高的分数所对应的学生和课程 用c语言表示同时带有一定解释
时间: 2024-01-01 13:05:32 浏览: 131
以下是代码实现,包括注释解释:
```c
#include <stdio.h>
#define N 10 // 学生数
#define M 5 // 课程数
// 计算每个学生平均分
void avgStu(double score[][M]) {
int i, j;
double sum;
for (i = 0; i < N; i++) {
sum = 0.0;
for (j = 0; j < M; j++) {
sum += score[i][j];
}
printf("第%d个学生的平均分:%.2lf\n", i + 1, sum / M);
}
}
// 计算每门课的平均分
void avgCourse(double score[][M]) {
int i, j;
double sum;
for (j = 0; j < M; j++) {
sum = 0.0;
for (i = 0; i < N; i++) {
sum += score[i][j];
}
printf("第%d门课的平均分:%.2lf\n", j + 1, sum / N);
}
}
// 找出最高分数所对应的学生和课程
void findMaxScore(double score[][M]) {
int i, j, maxI, maxJ;
double maxScore;
maxScore = score[0][0]; // 先假设第一个分数最高
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
if (score[i][j] > maxScore) {
maxScore = score[i][j];
maxI = i;
maxJ = j;
}
}
}
printf("最高分数为%.2lf,对应的学生为第%d个,课程为第%d门。\n", maxScore, maxI + 1, maxJ + 1);
}
int main() {
double score[N][M]; // 定义数组存储成绩
int i, j;
// 输入成绩
for (i = 0; i < N; i++) {
printf("请输入第%d个学生的5门课程成绩:\n", i + 1);
for (j = 0; j < M; j++) {
scanf("%lf", &score[i][j]);
}
}
// 调用函数计算平均分和最高分数
avgStu(score);
avgCourse(score);
findMaxScore(score);
return 0;
}
```
其中,`double score[N][M]` 定义了一个二维数组用于存储成绩。`avgStu()` 函数用于计算每个学生的平均分,`avgCourse()` 函数用于计算每门课的平均分,`findMaxScore()` 函数用于找出最高分数所对应的学生和课程。最后在 `main()` 函数中输入成绩并调用相应函数即可。
阅读全文