C语言图书管理系统:按出版日期排序
#include <stdio.h> #include <stdlib.h> #include <string.h>
// 定义图书结构体 typedef struct Book { char title[101]; // 书名 char author[101]; // 作者 char date[11]; // 出版日期,格式为YYYY-MM-DD,共10个字符 } Book;
// 比较函数,用于qsort排序 int cmp(const void* a, const void* b) { Book* book1 = (Book*)a; Book* book2 = (Book*)b; return strcmp(book1->date, book2->date); }
int main() { int n; scanf("%d", &n);
// 动态分配内存存储图书数据
Book* books = (Book*)malloc(n * sizeof(Book));
// 输入图书信息
for (int i = 0; i < n; i++) {
scanf("%s %s %s", books[i].title, books[i].author, books[i].date);
}
// 按出版日期排序
qsort(books, n, sizeof(Book), cmp);
// 输出图书信息
for (int i = 0; i < n; i++) {
printf("%s %s %s\n", books[i].title, books[i].author, books[i].date);
}
// 释放动态分配的内存
free(books);
return 0;
}
原文地址: http://www.cveoy.top/t/topic/ojIx 著作权归作者所有。请勿转载和采集!