c语言编程要编程排序一个班的学生学习成绩,成绩记录类型Record和清单类型List设计如下: typedef struct { char no[13]; int score; } Record; typedef Record List[10]; 请编程,先1行输入班级号和学生人数,以空格分隔,班级号就是学号的前9位。然后1行1个输入每个学生的顺序号和成绩,以空格分隔,顺序号就是学号的后3位。再将输入的学生按成绩从大到小排序后,将学生的完整学号和成绩1行1个显示,以1个空格分隔。(此题为计算机自动评分题,请严格按照以下规定编程,否则无法得分:不要有任何输入输出提示文字按题目要求显示结果。) 例如,先输入:201925804 4 再输入: 001 80 002 70 003 85 004 75 则显示: 201925804003 85 201925804001 80 201925804004 75 201925804002 70
时间: 2024-03-03 22:50:08 浏览: 51
下面是C语言的代码实现:
```
#include <stdio.h>
#include <string.h>
typedef struct {
char no[13];
int score;
} Record;
typedef Record List[10];
int main() {
List list;
int n, i, j;
char classNo[10];
// 读入班级号和学生人数
scanf("%s %d", classNo, &n);
// 读入每个学生的顺序号和成绩
for (i = 0; i < n; i++) {
char order[4];
scanf("%s %d", order, &list[i].score);
sprintf(list[i].no, "%s%s", classNo, order);
}
// 排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (list[j].score < list[j + 1].score) {
Record temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
// 显示排序结果
for (i = 0; i < n; i++) {
printf("%s %d\n", list[i].no, list[i].score);
}
return 0;
}
```
使用了冒泡排序算法对学生成绩进行排序,按照题目要求输出结果。
阅读全文