//20、输入10个学生5门课的成绩,分别用函数实现以下功能: //①计算每个学生的平均分; //②计算每门课的平均分; //③求出每门课的最高分。用C语言解决
时间: 2023-07-07 09:35:55 浏览: 85
好的,以下是用 C 语言实现题目要求的程序:
```c
#include <stdio.h>
#define STUDENT_NUM 10 // 学生人数
#define COURSE_NUM 5 // 课程数
// 计算每个学生的平均分
void calcAvgScoreByStudent(double scores[][COURSE_NUM]) {
int i, j;
for (i = 0; i < STUDENT_NUM; i++) {
double sum = 0;
for (j = 0; j < COURSE_NUM; j++) {
sum += scores[i][j];
}
double avg = sum / COURSE_NUM;
printf("第 %d 个学生的平均分是:%.2f\n", i + 1, avg);
}
}
// 计算每门课的平均分
void calcAvgScoreByCourse(double scores[][COURSE_NUM]) {
int i, j;
for (j = 0; j < COURSE_NUM; j++) {
double sum = 0;
for (i = 0; i < STUDENT_NUM; i++) {
sum += scores[i][j];
}
double avg = sum / STUDENT_NUM;
printf("第 %d 门课的平均分是:%.2f\n", j + 1, avg);
}
}
// 求出每门课的最高分
void findMaxScoreByCourse(double scores[][COURSE_NUM]) {
int i, j;
for (j = 0; j < COURSE_NUM; j++) {
double maxScore = scores[0][j];
for (i = 1; i < STUDENT_NUM; i++) {
if (scores[i][j] > maxScore) {
maxScore = scores[i][j];
}
}
printf("第 %d 门课的最高分是:%.2f\n", j + 1, maxScore);
}
}
int main() {
double scores[STUDENT_NUM][COURSE_NUM];
printf("请输入每个学生的 5 门课程成绩:\n");
int i, j;
for (i = 0; i < STUDENT_NUM; i++) {
printf("请输入第 %d 个学生的成绩:", i + 1);
for (j = 0; j < COURSE_NUM; j++) {
scanf("%lf", &scores[i][j]);
}
}
printf("\n");
calcAvgScoreByStudent(scores);
printf("\n");
calcAvgScoreByCourse(scores);
printf("\n");
findMaxScoreByCourse(scores);
return 0;
}
```
这个程序在 C 语言中实现了题目所要求的三个函数,并且使用了一个二维数组 `scores` 来存储学生成绩。主函数中调用了三个函数来输出结果。注意,在 C 语言中,使用 `%lf` 来输入和输出一个 double 类型的变量。
阅读全文