给定N个学生的基本信息,包括学号(由12个数字组成的字符串)、姓名(长度小于20的不包含空白字符的非空字符串)、高等数学成绩、C语言程序设计成绩,成绩均为[0,100]区间内的整数,要求根据C语言的成绩,对学生名单进行降序排列。用c预言
时间: 2023-12-30 11:14:22 浏览: 136
C语言程序设计-对长度为8个字符的字符串,将8个字符按降序排列;例如:原来的字符串为CEAedcab,排序后输出为edcbaE
5星 · 资源好评率100%
这里给出一个使用C语言实现的解决方案,使用冒泡排序对学生信息进行排序,按照C语言成绩降序排列。
```c
#include <stdio.h>
#include <string.h>
#define N 4
struct student {
char id[13];
char name[21];
int math;
int c;
};
// 冒泡排序
void bubble_sort(struct student arr[], int n) {
int i, j;
struct student temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j].c < arr[j + 1].c) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
struct student arr[N] = {
{"000000000001", "张三", 80, 90},
{"000000000002", "李四", 70, 85},
{"000000000003", "王五", 90, 95},
{"000000000004", "赵六", 85, 80}
};
int i;
// 对学生信息进行排序
bubble_sort(arr, N);
// 输出排序后的学生信息
for (i = 0; i < N; i++) {
printf("%s %s %d %d\n", arr[i].id, arr[i].name, arr[i].math, arr[i].c);
}
return 0;
}
```
在上面的代码中,我们首先定义了一个结构体`student`,包含学生信息的各个字段。然后我们定义了一个包含学生信息的结构体数组,并初始化了其元素。
接下来,我们使用冒泡排序对学生信息进行排序,按照C语言成绩降序排列。在冒泡排序的过程中,我们比较相邻的两个元素的C语言成绩大小,如果前一个元素的C语言成绩小于后一个元素的C语言成绩,则交换这两个元素的位置。
最后,我们使用一个循环来输出排序后的学生信息。
阅读全文