/* * 示例20:综合练习(Comprehensive) * 功能:综合运用前面学到的知识,实现一个简单的学生成绩管理系统 * 包含:结构体、数组、函数、循环、条件判断、输入输出 */ #include #include // 定义学生结构体 typedef struct { char name[20]; // 姓名 int score; // 成绩 } Student; // 函数:输入学生信息 void inputStudents(Student students[], int n) { for (int i = 0; i < n; i++) { printf("请输入第 %d 个学生的姓名:", i + 1); scanf("%s", students[i].name); printf("请输入 %s 的成绩:", students[i].name); scanf("%d", &students[i].score); } } // 函数:显示所有学生信息 void showStudents(Student students[], int n) { printf("\n=== 学生成绩列表 ===\n"); printf("序号\t姓名\t成绩\n"); for (int i = 0; i < n; i++) { printf("%d\t%s\t%d\n", i + 1, students[i].name, students[i].score); } } // 函数:计算平均分 float averageScore(Student students[], int n) { int sum = 0; for (int i = 0; i < n; i++) { sum += students[i].score; } return (float)sum / n; } // 函数:找出最高分的学生 void findTopStudent(Student students[], int n) { int maxIndex = 0; for (int i = 1; i < n; i++) { if (students[i].score > students[maxIndex].score) { maxIndex = i; } } printf("最高分学生:%s,成绩:%d\n", students[maxIndex].name, students[maxIndex].score); } int main() { int num; printf("请输入学生人数:"); scanf("%d", &num); // 创建学生数组 Student students[100]; // 输入学生信息 inputStudents(students, num); // 显示学生信息 showStudents(students, num); // 计算并显示平均分 float avg = averageScore(students, num); printf("\n平均分:%.2f\n", avg); // 找出最高分学生 findTopStudent(students, num); return 0; }