在主函数中利用以下3个外部函数,输入N个学生M门课程的成绩,输出每个学生的平均成绩以及每门课程的平均成绩。 input 0函数用于输入每个学生每门课程的成绩。aver stu0函数用于计算每个学生的平均成绩aver cour 0函数用于计算每门课程的平均成绩 #define N 5#define M 3
时间: 2024-02-11 07:07:38 浏览: 66
好的,以下是一个可能的解决方案:
```c
#include <stdio.h>
#define N 5
#define M 3
// 外部函数声明
void input(int grades[N][M]);
void aver_stu(int grades[N][M], float avg_stu[N]);
void aver_cour(int grades[N][M], float avg_cour[M]);
int main() {
// 输入成绩
int grades[N][M];
input(grades);
// 计算每个学生的平均成绩
float avg_stu[N];
aver_stu(grades, avg_stu);
// 计算每门课程的平均成绩
float avg_cour[M];
aver_cour(grades, avg_cour);
// 输出每个学生的平均成绩
printf("每个学生的平均成绩为:\n");
for (int i = 0; i < N; i++) {
printf("第%d个学生的平均成绩为%.2f\n", i + 1, avg_stu[i]);
}
// 输出每门课程的平均成绩
printf("每门课程的平均成绩为:\n");
for (int i = 0; i < M; i++) {
printf("第%d门课程的平均成绩为%.2f\n", i + 1, avg_cour[i]);
}
return 0;
}
void input(int grades[N][M]) {
printf("请输入每个学生的成绩:\n");
for (int i = 0; i < N; i++) {
printf("请输入第%d个学生的%d门课程的成绩:\n", i + 1, M);
for (int j = 0; j < M; j++) {
scanf("%d", &grades[i][j]);
}
}
}
void aver_stu(int grades[N][M], float avg_stu[N]) {
for (int i = 0; i < N; i++) {
int sum = 0;
for (int j = 0; j < M; j++) {
sum += grades[i][j];
}
avg_stu[i] = (float) sum / M;
}
}
void aver_cour(int grades[N][M], float avg_cour[M]) {
for (int i = 0; i < M; i++) {
int sum = 0;
for (int j = 0; j < N; j++) {
sum += grades[j][i];
}
avg_cour[i] = (float) sum / N;
}
}
```
这个程序可以输入任意数量的学生和课程成绩,并计算每个学生的平均成绩和每门课程的平均成绩。你可以根据需要进行修改和扩展。
阅读全文