c语言编程题;从键盘输入N本图书的书名(书名长度不超过10个汉字)和单价,按单价从高到低顺序排序后输出图书
#include <stdio.h>
#include <stdlib.h>
#define max_N 10000
/*定义书的结构体
*name,书的名字
*price,书的单价
*/
struct Book {
char name[21];
double price;
} book[max_N];
//定义快速排序的比较函数
int cmp(const void *a, const void *b) {
return (*(struct Book *)b).price > (*(struct Book *)a).price ? 1 : -1;
}
int main()
{
int N, i;
printf("\n请输入书的数量:");
scanf("%d", &N);
printf("\n请依次输入%d本书的书名、价格:\n\n", N);
for (i = 0; i < N; ++i) {
scanf("%s %lf", book[i].name, &book[i].price);
}
//快速排序
qsort(book, N, sizeof(struct Book), cmp);
printf("\n%d本书按单价从高到低排序如下:\n\n", N);
for (i = 0; i < N; ++i) {
printf("%s\n", book[i].name);
}
return 0;
}