提交记录 #398
提交时间:2024-12-03 16:27:24
语言:c
状态:Unaccepted
编译情况:编译成功
固定测试点#1:
固定测试点#2:
固定测试点#3:
附加测试点暂不可用
5757.【中学】学生成绩排序
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LENGTH 20
// 定义学生结构体,包含姓名和成绩
typedef struct {
char name[MAX_NAME_LENGTH + 1]; // 姓名,+1是为了容纳 '\0' 结束符
int score; // 成绩
} Student;
int main() {
int n;
scanf("%d", &n); // 输入学生数量
Student students[n]; // 声明一个学生结构体数组
// 输入学生的姓名和成绩
for (int i = 0; i < n; i++) {
scanf("%s %d", students[i].name, &students[i].score);
}
// 按成绩降序排序,成绩相同则保持原来的输入顺序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (students[j].score < students[j + 1].score) {
// 交换成绩和姓名
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
// 输出排序后的结果
for (int i = 0; i < n; i++) {
printf("%s,%d\n", students[i].name, students[i].score);
}
return 0;
}