pta 书籍排序c语言
时间: 2023-08-19 11:08:31 浏览: 147
以下是一个简单的 C 语言程序,可以实现对书籍按照指定方式排序的功能。在这个例子中,使用了冒泡排序算法,按照书籍的价格从小到大进行排序。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_N 100
struct book {
char name[50];
float price;
};
void swap(struct book *a, struct book *b) {
struct book tmp = *a;
*a = *b;
*b = tmp;
}
int main() {
int n;
struct book books[MAX_N];
printf("请输入要排序的书籍数目(不超过 %d 本):", MAX_N);
scanf("%d", &n);
printf("请依次输入每本书的名称和价格:\n");
for (int i = 0; i < n; i++) {
scanf("%s%f", books[i].name, &books[i].price);
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (books[j].price > books[j + 1].price) {
swap(&books[j], &books[j + 1]);
}
}
}
printf("按价格从小到大排序后的书籍列表:\n");
for (int i = 0; i < n; i++) {
printf("%s %.2f\n", books[i].name, books[i].price);
}
return 0;
}
```
在这个程序中,我们定义了一个结构体 `book` 来表示一本书,包含了书名和价格两个成员。然后,我们先输入书籍的数量和每本书的信息,再使用冒泡排序算法对书籍按照价格从小到大进行排序,最后输出排序后的结果。
需要注意的是,这个程序中没有对输入的数据进行任何的错误处理,如果输入的数据不符合要求,程序可能会出现意想不到的错误。在实际应用中,需要根据具体的需求进行相应的改进。
阅读全文