#include <stdio.h> #include <string.h> #define MAX_STUDENT_NUM 30 //最大学生个数 #define MAX_COURSE_NUM 6 //最大课程个数 #define NAME_LEN 20 //最大名字个数 typedef struct Student { char id[10];//学生学号 char name[NAME_LEN];//姓名 int scores[MAX_COURSE_NUM];//各科分数 int total_score;//总分 float avg_score;//平均分 } XUESHENG;//将结构体名称命名为XUESHENG void sort_by_total_score(XUESHENG students[], int num);//按每个学生的总分由高到低排出名次表 请补充函数
时间: 2024-04-25 18:25:57 浏览: 95
毕业论文设计--学生成绩管理系统千行代码c语言课程设计正文.doc
void sort_by_total_score(XUESHENG students[], int num) {
// 使用冒泡排序算法,按学生总分由高到低排序
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (students[j].total_score < students[j+1].total_score) {
// 交换两个学生的位置
XUESHENG temp = students[j];
students[j] = students[j+1];
students[j+1] = temp;
}
}
}
// 输出名次表
printf("名次\t学号\t姓名\t总分\t平均分\n");
for (int i = 0; i < num; i++) {
printf("%d\t%s\t%s\t%d\t%.2f\n", i+1, students[i].id, students[i].name, students[i].total_score, students[i].avg_score);
}
}
阅读全文