C语言顺序表插入图书信息(结构体)
时间: 2023-11-02 07:01:22 浏览: 56
以下是一个示例代码,用于在顺序表中插入图书信息(结构体):
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100
typedef struct {
char title[50];
char author[30];
int year;
double price;
} Book;
typedef struct {
Book books[MAX_SIZE];
int size;
} BookList;
void initializeList(BookList *list) {
list->size = 0;
}
void insertBook(BookList *list, Book book, int position) {
if (list->size == MAX_SIZE) {
printf("Error: the list is full.\n");
return;
}
if (position < 0 || position > list->size) {
printf("Error: invalid position.\n");
return;
}
for (int i = list->size; i > position; i--) {
list->books[i] = list->books[i - 1];
}
list->books[position] = book;
list->size++;
}
void printList(BookList *list) {
printf("Title\t\tAuthor\t\tYear\tPrice\n");
printf("--------------------------------------------------\n");
for (int i = 0; i < list->size; i++) {
printf("%s\t\t%s\t\t%d\t%.2f\n", list->books[i].title, list->books[i].author, list->books[i].year, list->books[i].price);
}
printf("--------------------------------------------------\n");
}
int main() {
BookList list;
initializeList(&list);
Book book1 = {"The Catcher in the Rye", "J.D. Salinger", 1951, 16.99};
Book book2 = {"To Kill a Mockingbird", "Harper Lee", 1960, 12.95};
Book book3 = {"1984", "George Orwell", 1949, 10.99};
insertBook(&list, book1, 0);
insertBook(&list, book2, 1);
insertBook(&list, book3, 1);
printList(&list);
return 0;
}
```
在上面的示例中,我们定义了一个 `Book` 结构体来表示一本书的信息,以及一个 `BookList` 结构体来表示图书列表。我们使用 `initializeList` 函数来初始化列表,`insertBook` 函数来插入一本书到指定位置,`printList` 函数来打印整个列表。
在 `main` 函数中,我们创建了三本书,并在第一个位置和第二个位置插入了两本书。最后,我们使用 `printList` 函数打印了整个列表。