定义函数,将主函数中的n种不同书籍(结构数组)按定价从低到高排序。其中书籍信息含书籍名称、定价、书号。
时间: 2024-04-08 20:35:07 浏览: 11
下面是一个示例的C代码,用于将n种不同书籍按照定价从低到高进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义书籍结构体
typedef struct Book {
char name[100];
float price;
int bookNumber;
} Book;
// 按定价从低到高排序的比较函数
int compare(const void *a, const void *b) {
const Book *bookA = (const Book *)a;
const Book *bookB = (const Book *)b;
if (bookA->price < bookB->price) {
return -1;
} else if (bookA->price > bookB->price) {
return 1;
} else {
return 0;
}
}
int main() {
int n;
printf("请输入书籍数量:");
scanf("%d", &n);
Book *books = (Book *)malloc(n * sizeof(Book));
// 输入书籍信息
for (int i = 0; i < n; i++) {
printf("请输入第%d本书的名称:", i + 1);
scanf("%s", books[i].name);
printf("请输入第%d本书的定价:", i + 1);
scanf("%f", &(books[i].price));
printf("请输入第%d本书的书号:", i + 1);
scanf("%d", &(books[i].bookNumber));
}
// 按定价从低到高排序
qsort(books, n, sizeof(Book), compare);
// 输出排序结果
printf("按定价从低到高排序后的书籍列表:\n");
for (int i = 0; i < n; i++) {
printf("书籍名称:%s,定价:%.2f,书号:%d\n", books[i].name, books[i].price, books[i].bookNumber);
}
free(books);
return 0;
}
```
你可以根据需要修改书籍结构体的字段,以及输入和输出的格式。这段代码利用了C语言标准库中的`qsort`函数进行排序,通过自定义的比较函数`compare`来实现按照定价从低到高进行排序。