C语言在一个程序中输入3个学生5门课的成绩,分别用函数求:每个学生的平均分;每门课的平均分;找出最高的分数和对应的学生及课程
时间: 2024-01-01 11:05:05 浏览: 77
C语言程序设计-计算n门课程的平均值,计算结果作为函数值返回;例如:若有5门课程的成绩是:
5星 · 资源好评率100%
好的,我来解答你的问题。
以下是 C 语言程序,实现了你所提到的三个功能:
```c
#include<stdio.h>
#include<string.h>
#define N 3 // 学生数
#define M 5 // 课程数
// 求每个学生的平均分
void avg_stu(float (*p)[M]){
int i, j;
float sum;
for(i=0;i<N;i++){
sum = 0;
for(j=0;j<M;j++){
sum += p[i][j];
}
printf("第%d个学生的平均分为%.2f\n", i+1, sum/M);
}
}
// 求每门课的平均分
void avg_cou(float (*p)[M]){
int i, j;
float sum;
for(j=0;j<M;j++){
sum = 0;
for(i=0;i<N;i++){
sum += p[i][j];
}
printf("第%d门课的平均分为%.2f\n", j+1, sum/N);
}
}
// 找出最高的分数和对应的学生及课程
void max_score(float (*p)[M]){
int i, j, row, col;
float max = p[0][0];
for(i=0;i<N;i++){
for(j=0;j<M;j++){
if(p[i][j] > max){
max = p[i][j];
row = i+1;
col = j+1;
}
}
}
printf("最高的分数为%.2f,对应的学生为第%d个,课程为第%d门\n", max, row, col);
}
int main(){
float score[N][M];
int i, j;
printf("请输入%d个学生的%d门课的成绩:\n", N, M);
for(i=0;i<N;i++){
printf("请输入第%d个学生的成绩:\n", i+1);
for(j=0;j<M;j++){
scanf("%f", &score[i][j]);
}
}
avg_stu(score);
avg_cou(score);
max_score(score);
return 0;
}
```
希望这个程序能够帮助你解决你的问题。
阅读全文