定义结构体类型,动态分配结构体数组的大小n,输入n个学生信息。对n个学生按照成绩从低到高顺序排序,输出排序后结果
时间: 2024-02-25 13:51:46 浏览: 27
好的,以下是 C 语言的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NAME_LEN 20
// 定义学生结构体
typedef struct {
char name[MAX_NAME_LEN];
int score;
} Student;
// 比较函数,用于 qsort 排序
int cmp(const void *a, const void *b) {
return ((Student *)a)->score - ((Student *)b)->score;
}
int main() {
int n;
printf("请输入学生数量:");
scanf("%d", &n);
// 动态分配结构体数组
Student *students = (Student *)malloc(n * sizeof(Student));
if (students == NULL) {
printf("内存分配失败\n");
return 1;
}
// 输入学生信息
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个学生的姓名和成绩,中间用空格隔开:", i + 1);
scanf("%s %d", students[i].name, &students[i].score);
}
// 按照成绩排序
qsort(students, n, sizeof(Student), cmp);
// 输出排序后的结果
printf("按照成绩排序后的结果:\n");
for (int i = 0; i < n; i++) {
printf("%s %d\n", students[i].name, students[i].score);
}
// 释放内存
free(students);
return 0;
}
```
以上代码中,我们首先定义了一个学生结构体,包含了学生的姓名和成绩。然后通过动态分配结构体数组的方式,输入 n 个学生的信息。接着使用 qsort 函数按照成绩排序,最后输出排序后的结果。需要注意的是,我们在 qsort 函数中传入了自己编写的比较函数 cmp,用于指定按照成绩从低到高排序。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)