用C语言写一个基于顺序存储结构的图书信息表的图书去重的代码
时间: 2023-05-28 14:02:32 浏览: 110
// 以下代码实现了基于顺序存储结构的图书信息表的图书去重
#include <stdio.h>
#include <string.h>
#define MAXSIZE 100 // 最大存储容量
// 图书信息结构体
typedef struct {
char name[20]; // 书名
char author[20]; // 作者
int price; // 价格
}Book;
// 图书信息数组
Book books[MAXSIZE];
// 当前存储的图书数量
int count = 0;
/**
* @brief 添加一本图书到图书表中
*
* @param name 书名
* @param author 作者
* @param price 价格
* @return int 1表示添加成功,0表示添加失败
*/
int add_book(char name[], char author[], int price) {
// 判断是否超出最大存储容量
if (count >= MAXSIZE) {
printf("图书表已满,无法添加\n");
return 0;
}
// 判断是否已经存在该书
for (int i = 0; i < count; i++) {
if (strcmp(name, books[i].name) == 0 && strcmp(author, books[i].author) == 0 && price == books[i].price) {
printf("该书已存在,无需添加\n");
return 0;
}
}
// 添加图书信息
strcpy(books[count].name, name);
strcpy(books[count].author, author);
books[count].price = price;
count++;
// 添加成功
return 1;
}
/**
* @brief 打印图书信息表
*
*/
void print_books() {
printf("书名\t作者\t价格\n");
for (int i = 0; i < count; i++) {
printf("%s\t%s\t%d\n", books[i].name, books[i].author, books[i].price);
}
}
int main() {
// 添加图书信息
add_book("Java程序设计", "张三", 98);
add_book("C程序设计", "李四", 68);
add_book("Python程序设计", "王五", 88);
add_book("Java程序设计", "张三", 98); // 添加已经存在的数据
// 打印图书信息
print_books();
return 0;
}
阅读全文