输入4个学生3门课的成绩,分别用函数实现下列各项功能: 1)计算出每个学生的平均分; 2)计算出每门课程的平均分; 3)找出所有12个分数中最高分数所对应的学生和课程 用C语言实现
时间: 2024-06-14 10:04:24 浏览: 104
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
以下是用C语言实现的代码示例:
```c
#include <stdio.h>
// 计算每个学生的平均分
void calculateStudentAverage(float scores[][3], float studentAverage[], int numStudents, int numCourses) {
for (int i = 0; i < numStudents; i++) {
float sum = 0;
for (int j = 0; j < numCourses; j++) {
sum += scores[i][j];
}
studentAverage[i] = sum / numCourses;
}
}
// 计算每门课程的平均分
void calculateCourseAverage(float scores[][3], float courseAverage[], int numStudents, int numCourses) {
for (int j = 0; j < numCourses; j++) {
float sum = 0;
for (int i = 0; i < numStudents; i++) {
sum += scores[i][j];
}
courseAverage[j] = sum / numStudents;
}
}
// 找出最高分数所对应的学生和课程
void findHighestScore(float scores[][3], int numStudents, int numCourses, int *studentIndex, int *courseIndex) {
float highestScore = scores[0][0];
*studentIndex = 0;
*courseIndex = 0;
for (int i = 0; i < numStudents; i++) {
for (int j = 0; j < numCourses; j++) {
if (scores[i][j] > highestScore) {
highestScore = scores[i][j];
*studentIndex = i;
*courseIndex = j;
}
}
}
}
int main() {
float scores[4][3]; // 存储学生的成绩
float studentAverage[4]; // 存储每个学生的平均分
float courseAverage[3]; // 存储每门课程的平均分
int highestStudentIndex, highestCourseIndex; // 存储最高分数所对应的学生和课程的索引
// 输入学生的成绩
printf("请输入4个学生3门课的成绩:\n");
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
scanf("%f", &scores[i][j]);
}
}
// 计算每个学生的平均分
calculateStudentAverage(scores, studentAverage, 4, 3);
// 计算每门课程的平均分
calculateCourseAverage(scores, courseAverage, 4, 3);
// 找出最高分数所对应的学生和课程
findHighestScore(scores, 4, 3, &highestStudentIndex, &highestCourseIndex);
// 输出结果
printf("每个学生的平均分:\n");
for (int i = 0; i < 4; i++) {
printf("学生%d的平均分为:%.2f\n", i + 1, studentAverage[i]);
}
printf("每门课程的平均分:\n");
for (int j = 0; j < 3; j++) {
printf("课程%d的平均分为:%.2f\n", j + 1, courseAverage[j]);
}
printf("最高分数所对应的学生和课程:\n");
printf("学生%d的课程%d获得了最高分数:%.2f\n", highestStudentIndex + 1, highestCourseIndex + 1, scores[highestStudentIndex][highestCourseIndex]);
return 0;
}
```
阅读全文