c语言结构体数组排序
时间: 2023-10-26 20:27:02 浏览: 283
你可以使用冒泡排序或快速排序来对结构体数组进行排序。以下是使用冒泡排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
struct Student {
char name[50];
int score;
};
void bubbleSort(struct Student arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j].score > arr[j+1].score) {
// 交换元素
struct Student temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
struct Student students[5];
// 输入学生信息
printf("请输入学生姓名和分数:\n");
for (int i = 0; i < 5; i++) {
printf("学生 %d:\n", i+1);
scanf("%s %d", students[i].name, &students[i].score);
}
// 对学生数组进行排序
bubbleSort(students, 5);
// 打印排序后的结果
printf("排序后的结果:\n");
for (int i = 0; i < 5; i++) {
printf("学生 %d: %s %d\n", i+1, students[i].name, students[i].score);
}
return 0;
}
```
这个示例代码定义了一个结构体 `Student`,包含了姓名和分数字段。然后使用冒泡排序对结构体数组 `students` 进行排序。最后打印出排序后的结果。你可以根据需要修改结构体字段和数组大小。
阅读全文