用C语言设计一个能够保存图书信息的结构。图书属性包括:书名(title)、作者(author)和单价信息(price).编写一个函数,可以读取新书的信息,并增加到图书列表中。再编写一个void型函数,可以修改图书信息。再编写一个函数,可以输出图书信息。
时间: 2024-04-29 21:26:32 浏览: 88
好的,理解了你的问题。下面是我的回答:
可以使用以下代码来设计保存图书信息的结构体:
```c
struct Book {
char title[100];
char author[100];
float price;
};
```
然后,可以编写一个函数来读取新书的信息并将其添加到图书列表中:
```c
void addBook(struct Book books[], int *count) {
printf("请输入书名:\n");
scanf("%s", books[*count].title);
printf("请输入作者:\n");
scanf("%s", books[*count].author);
printf("请输入单价:\n");
scanf("%f", &books[*count].price);
(*count)++;
}
```
这个函数接受一个结构体数组和一个整数指针,表示当前图书列表中有多少本书。调用这个函数时,它会提示用户输入新书的信息,然后将新书的信息添加到数组中并更新计数器。
接下来,我来编写一个函数来修改图书信息:
```c
void editBook(struct Book books[], int count) {
int index;
printf("请输入要修改的书的索引:\n");
scanf("%d", &index);
if (index >= 0 && index < count) {
printf("请输入新的书名:\n");
scanf("%s", books[index].title);
printf("请输入新的作者:\n");
scanf("%s", books[index].author);
printf("请输入新的单价:\n");
scanf("%f", &books[index].price);
printf("修改成功!\n");
} else {
printf("书本索引无效!\n");
}
}
```
这个函数也接受一个结构体数组和一个整数,表示当前图书列表中有多少本书。它会提示用户输入要修改的书的索引,然后允许用户修改相应的信息。如果索引无效,函数将打印错误消息。
最后,我来编写一个函数来输出图书信息:
```c
void printBooks(struct Book books[], int count) {
printf("图书列表:\n");
for (int i = 0; i < count; i++) {
printf("%d. 书名:%s,作者:%s,单价:%.2f元\n", i, books[i].title, books[i].author, books[i].price);
}
}
```
这个函数也接受一个结构体数组和一个整数,表示当前图书列表中有多少本书。它会打印出每本书的信息,包括索引、书名、作者和单价。
希望我的回答能对你有所帮助!
阅读全文