用结构体写一个倒置排序
时间: 2023-03-25 17:00:56 浏览: 115
好的,以下是用结构体写的倒置排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
struct student {
char name[MAX_LEN];
int score;
};
void swap(struct student *a, struct student *b) {
struct student temp = *a;
*a = *b;
*b = temp;
}
void sort(struct student arr[], int n) {
for (int i = ; i < n - 1; i++) {
for (int j = ; j < n - i - 1; j++) {
if (arr[j].score < arr[j + 1].score) {
swap(&arr[j], &arr[j + 1]);
}
}
}
}
int main() {
struct student arr[5] = {
{"Tom", 80},
{"Jerry", 90},
{"Alice", 70},
{"Bob", 85},
{"David", 75}
};
int n = sizeof(arr) / sizeof(arr[]);
printf("排序前:\n");
for (int i = ; i < n; i++) {
printf("%s %d\n", arr[i].name, arr[i].score);
}
sort(arr, n);
printf("排序后:\n");
for (int i = ; i < n; i++) {
printf("%s %d\n", arr[i].name, arr[i].score);
}
return ;
}
```
这个程序定义了一个结构体 `student`,包含学生姓名和分数两个成员变量。然后定义了两个函数 `swap` 和 `sort`,分别用于交换两个结构体变量和对结构体数组进行冒泡排序。在 `main` 函数中,定义了一个包含 5 个学生信息的结构体数组,并调用 `sort` 函数对其进行排序。最后输出排序前后的结果。
阅读全文