C语言: 学生成绩统计与最高分查找
C语言: 学生成绩统计与最高分查找
这篇文章提供了一个C语言程序,用于处理学生成绩数据,包含以下功能:
- 输入10个学生6门课的成绩* 计算每个学生的平均分* 计算每门课程的平均分* 找出最高分及其归属的学生和课程
代码实现c#include <stdio.h>
#define STUDENTS 10#define COURSES 6
void inputGrades(int grades[STUDENTS][COURSES]);void calculateAverageStudent(int grades[STUDENTS][COURSES], float averageStudent[STUDENTS]);void calculateAverageCourse(int grades[STUDENTS][COURSES], float averageCourse[COURSES]);void findHighestGrade(int grades[STUDENTS][COURSES]);
int main() { int grades[STUDENTS][COURSES]; float averageStudent[STUDENTS]; float averageCourse[COURSES];
inputGrades(grades); calculateAverageStudent(grades, averageStudent); calculateAverageCourse(grades, averageCourse); findHighestGrade(grades);
return 0;}
void inputGrades(int grades[STUDENTS][COURSES]) { printf('Enter the grades for each student and each course: '); for (int i = 0; i < STUDENTS; i++) { printf('Student %d: ', i + 1); for (int j = 0; j < COURSES; j++) { printf('Course %d: ', j + 1); scanf('%d', &grades[i][j]); } }}
void calculateAverageStudent(int grades[STUDENTS][COURSES], float averageStudent[STUDENTS]) { for (int i = 0; i < STUDENTS; i++) { int sum = 0; for (int j = 0; j < COURSES; j++) { sum += grades[i][j]; } averageStudent[i] = (float) sum / COURSES; printf('Average grade for student %d: %.2f ', i + 1, averageStudent[i]); }}
void calculateAverageCourse(int grades[STUDENTS][COURSES], float averageCourse[COURSES]) { for (int j = 0; j < COURSES; j++) { int sum = 0; for (int i = 0; i < STUDENTS; i++) { sum += grades[i][j]; } averageCourse[j] = (float) sum / STUDENTS; printf('Average grade for course %d: %.2f ', j + 1, averageCourse[j]); }}
void findHighestGrade(int grades[STUDENTS][COURSES]) { int highestGrade = grades[0][0]; int highestStudent = 0; int highestCourse = 0;
for (int i = 0; i < STUDENTS; i++) { for (int j = 0; j < COURSES; j++) { if (grades[i][j] > highestGrade) { highestGrade = grades[i][j]; highestStudent = i; highestCourse = j; } } }
printf('Highest grade: %d
', highestGrade); printf('Student: %d ', highestStudent + 1); printf('Course: %d ', highestCourse + 1);}
代码解释
这段代码首先定义了学生人数 STUDENTS 和课程数量 COURSES 为常量。然后,它定义了四个函数:
inputGrades():该函数用于输入每个学生每门课程的成绩。*calculateAverageStudent():该函数用于计算每个学生的平均分。*calculateAverageCourse():该函数用于计算每门课程的平均分。*findHighestGrade():该函数用于查找所有成绩中的最高分,并确定获得最高分的学生和课程。
在 main() 函数中,首先定义了三个数组:
grades:用于存储每个学生每门课程的成绩。*averageStudent:用于存储每个学生的平均分。*averageCourse:用于存储每门课程的平均分。
然后,程序调用 inputGrades() 函数输入所有学生的成绩,接着调用 calculateAverageStudent() 函数计算每个学生的平均分,调用 calculateAverageCourse() 函数计算每门课程的平均分,最后调用 findHighestGrade() 函数查找最高分及其归属的学生和课程。
总结
这段代码清晰简洁,实现了学生成绩数据的基本统计功能。你可以根据自己的需要修改代码,例如增加更多的统计指标或更改学生和课程数量。
原文地址: http://www.cveoy.top/t/topic/f4lm 著作权归作者所有。请勿转载和采集!