用C语言编写输入10个学生五门课的成绩,分别用函数实现下列功能:计算每个学生平均分,计算每门课的平均分,找出所有50个分数中最高的分数所对应的学生和课程
时间: 2025-01-27 08:13:26 浏览: 74
好的,下面是一个用C语言编写的程序,它可以输入10个学生五门课的成绩,并实现以下功能:
1. 计算每个学生的平均分。
2. 计算每门课的平均分。
3. 找出所有50个分数中最高的分数所对应的学生和课程。
```c
#include <stdio.h>
#define NUM_STUDENTS 10
#define NUM_SUBJECTS 5
void calculateStudentAverages(float grades[][NUM_SUBJECTS], float studentAverages[]) {
for (int i = 0; i < NUM_STUDENTS; i++) {
float sum = 0;
for (int j = 0; j < NUM_SUBJECTS; j++) {
sum += grades[i][j];
}
studentAverages[i] = sum / NUM_SUBJECTS;
}
}
void calculateSubjectAverages(float grades[][NUM_SUBJECTS], float subjectAverages[]) {
for (int j = 0; j < NUM_SUBJECTS; j++) {
float sum = 0;
for (int i = 0; i < NUM_STUDENTS; i++) {
sum += grades[i][j];
}
subjectAverages[j] = sum / NUM_STUDENTS;
}
}
void findHighestScore(float grades[][NUM_SUBJECTS], int *studentIndex, int *subjectIndex) {
float highestScore = grades[0][0];
*studentIndex = 0;
*subjectIndex = 0;
for (int i = 0; i < NUM_STUDENTS; i++) {
for (int j = 0; j < NUM_SUBJECTS; j++) {
if (grades[i][j] > highestScore) {
highestScore = grades[i][j];
*studentIndex = i;
*subjectIndex = j;
}
}
}
}
int main() {
float grades[NUM_STUDENTS][NUM_SUBJECTS];
float studentAverages[NUM_STUDENTS];
float subjectAverages[NUM_SUBJECTS];
// Input grades
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("Enter grades for student %d:\n", i + 1);
for (int j = 0; j < NUM_SUBJECTS; j++) {
printf("Subject %d: ", j + 1);
scanf("%f", &grades[i][j]);
}
}
// Calculate student averages
calculateStudentAverages(grades, studentAverages);
// Calculate subject averages
calculateSubjectAverages(grades, subjectAverages);
// Find highest score
int studentIndex, subjectIndex;
findHighestScore(grades, &studentIndex, &subjectIndex);
// Output results
printf("\nStudent Averages:\n");
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("Student %d: %.2f\n", i + 1, studentAverages[i]);
}
printf("\nSubject Averages:\n");
for (int j = 0; j < NUM_SUBJECTS; j++) {
printf("Subject %d: %.2f\n", j + 1, subjectAverages[j]);
}
printf("\nHighest Score: %.2f\n", grades[studentIndex][subjectIndex]);
printf("Student: %d\n", studentIndex + 1);
printf("Subject: %d\n", subjectIndex + 1);
return 0;
}
```
这个程序首先定义了学生和课程的数量,然后通过三个函数分别计算每个学生的平均分、每门课的平均分以及找出所有分数中最高的分数所对应的学生和课程。
1. `calculateStudentAverages` 函数计算每个学生的平均分。
2. `calculateSubjectAverages` 函数计算每门课的平均分。
3. `findHighestScore` 函数找出所有分数中最高的分数所对应的学生和课程。
在 `main` 函数中,程序首先输入所有学生的成绩,然后调用上述三个函数计算所需的结果,最后输出这些结果。
阅读全文
相关推荐


















