假设你正在开发一个图书管理系统,你需要设计一个数据结构来表示图书。每本图书包括书名、作者和出版日期。按照出版日期升序排 序,即先出版的图书排在前面。 输入: 从键盘输入一个整数 n(1<=n<=100),表示图书教量。然后输入n行,每行包念一本图书的信息:书名(不超过100 个字符)、作者(不超过 100个字符)和出版日期(格式为YYYY-MM-DD),数据之间用空格隔开。 输出: 按排序后的顺序输出图书的信息,每本图书一行,包括书名、作者和出版日期,数据之间用空格隔开。 1.程序题(100.0分) C
时间: 2024-02-13 11:08:00 浏览: 43
以下是一个使用C语言实现的图书管理系统代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Book {
char title[101];
char author[101];
char date[11];
};
int cmp(const void *a, const void *b) {
struct Book *p = (struct Book *)a;
struct Book *q = (struct Book *)b;
return strcmp(p->date, q->date);
}
int main() {
int n;
scanf("%d", &n);
struct Book *books = (struct Book *)malloc(n * sizeof(struct 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(struct 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;
}
```
首先定义了一个结构体 `Book` 来表示图书,包括书名、作者和出版日期。接着定义了一个比较函数 `cmp` 来用于排序,按照出版日期升序排列。主函数中先读入图书信息,然后使用 `qsort` 函数进行排序,再按顺序输出图书信息。最后释放动态分配的内存,程序结束。
阅读全文