#include <stdio.h> #include <stdlib.h> #include <string.h>

// 定义学生结构体 struct Student { int id; char name[20]; float scores[3]; float average; };

// 函数声明 void inputStudents(struct Student students[]); void calculateAverage(struct Student students[]); void findHighestScore(struct Student students[]); void sortStudents(struct Student students[]);

int main() { struct Student students[6];

inputStudents(students);
calculateAverage(students);
findHighestScore(students);
sortStudents(students);

return 0;

}

// 输入学生数据 void inputStudents(struct Student students[]) { for (int i = 0; i < 6; i++) { printf("请输入第%d个学生的学号:", i + 1); scanf("%d", &students[i].id); printf("请输入第%d个学生的姓名:", i + 1); scanf("%s", students[i].name); printf("请输入第%d个学生的语文成绩:", i + 1); scanf("%f", &students[i].scores[0]); printf("请输入第%d个学生的数学成绩:", i + 1); scanf("%f", &students[i].scores[1]); printf("请输入第%d个学生的外语成绩:", i + 1); scanf("%f", &students[i].scores[2]); } }

// 计算平均成绩 void calculateAverage(struct Student students[]) { for (int i = 0; i < 6; i++) { float sum = 0; for (int j = 0; j < 3; j++) { sum += students[i].scores[j]; } students[i].average = sum / 3; } }

// 找到最高分的学生 void findHighestScore(struct Student students[]) { int maxIndex = 0; float maxScore = students[0].average;

for (int i = 1; i < 6; i++) {
    if (students[i].average > maxScore) {
        maxIndex = i;
        maxScore = students[i].average;
    }
}

printf("最高分的学生信息:\n");
printf("学号:%d\n", students[maxIndex].id);
printf("姓名:%s\n", students[maxIndex].name);
printf("语文成绩:%f\n", students[maxIndex].scores[0]);
printf("数学成绩:%f\n", students[maxIndex].scores[1]);
printf("外语成绩:%f\n", students[maxIndex].scores[2]);
printf("\n");

}

// 根据平均成绩排序学生 void sortStudents(struct Student students[]) { // 冒泡排序 for (int i = 0; i < 5; i++) { for (int j = 0; j < 5 - i; j++) { if (students[j].average > students[j + 1].average) { struct Student temp = students[j]; students[j] = students[j + 1]; students[j + 1] = temp; } } }

printf("按照学习成绩平均分从低到高的顺序输出:\n");
for (int i = 0; i < 6; i++) {
    printf("学号:%d\n", students[i].id);
    printf("姓名:%s\n", students[i].name);
    printf("语文成绩:%f\n", students[i].scores[0]);
    printf("数学成绩:%f\n", students[i].scores[1]);
    printf("外语成绩:%f\n", students[i].scores[2]);
    printf("\n");
}

}

C语言实现学生成绩管理系统 - 计算平均分、查找最高分、排序输出

原文地址: https://www.cveoy.top/t/topic/qB5A 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录