用C语言写一个程序,满足输入10个学生5门课的成绩,分别用函数求: (1)每个学生的平均分; (2)每门课的平均分;(3)找出平均分最高的学生。
时间: 2023-12-10 22:42:27 浏览: 75
c语言课程设计报告,设计一个学生成绩管理系统
下面是一个用C语言编写的程序,实现了上述功能:
```c
#include <stdio.h>
// 计算每个学生的平均分
void avg_per_student(float score[][5], float avg[], int n)
{
int i, j;
for (i = 0; i < n; i++) {
float sum = 0;
for (j = 0; j < 5; j++) {
sum += score[i][j];
}
avg[i] = sum / 5;
}
}
// 计算每门课的平均分
void avg_per_course(float score[][5], float avg[], int n)
{
int i, j;
for (j = 0; j < 5; j++) {
float sum = 0;
for (i = 0; i < n; i++) {
sum += score[i][j];
}
avg[j] = sum / n;
}
}
// 找出平均分最高的学生
int highest_avg(float avg[], int n)
{
int i, max_idx = 0;
for (i = 1; i < n; i++) {
if (avg[i] > avg[max_idx]) {
max_idx = i;
}
}
return max_idx;
}
int main()
{
float score[10][5];
float avg_student[10], avg_course[5];
int i, j;
printf("请输入每个学生的5门成绩:\n");
for (i = 0; i < 10; i++) {
printf("学生 %d:", i + 1);
for (j = 0; j < 5; j++) {
scanf("%f", &score[i][j]);
}
}
avg_per_student(score, avg_student, 10);
avg_per_course(score, avg_course, 10);
printf("每个学生的平均分为:\n");
for (i = 0; i < 10; i++) {
printf("学生 %d:%.2f\n", i + 1, avg_student[i]);
}
printf("每门课的平均分为:\n");
for (j = 0; j < 5; j++) {
printf("课程 %d:%.2f\n", j + 1, avg_course[j]);
}
int max_idx = highest_avg(avg_student, 10);
printf("平均分最高的学生为学生 %d,平均分为%.2f\n", max_idx + 1, avg_student[max_idx]);
return 0;
}
```
运行程序后,可以输入每个学生的5门成绩,程序会自动计算出每个学生的平均分、每门课的平均分,并找出平均分最高的学生。
阅读全文