用c++实现以下要求:定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后统计图书表中的图书个数,同时逐行输出每本图书的信息。
时间: 2024-05-10 08:15:03 浏览: 149
好的,下面是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 100 // 最大图书数量
typedef struct {
char id[20]; // 书号
char name[50]; // 书名
float price; // 价格
} Book;
typedef struct {
Book books[MAX_SIZE]; // 存储图书的数组
int length; // 图书数量
} BookList;
int main() {
BookList bookList;
bookList.length = 0;
printf("请输入图书数量:");
scanf("%d", &bookList.length);
for (int i = 0; i < bookList.length; i++) {
Book book;
printf("请输入第%d本图书的信息:\n", i+1);
printf("书号:");
scanf("%s", book.id);
printf("书名:");
scanf("%s", book.name);
printf("价格:");
scanf("%f", &book.price);
bookList.books[i] = book;
}
printf("图书数量:%d\n", bookList.length);
for (int i = 0; i < bookList.length; i++) {
printf("第%d本图书的信息:\n", i+1);
printf("书号:%s\n", bookList.books[i].id);
printf("书名:%s\n", bookList.books[i].name);
printf("价格:%.2f元\n", bookList.books[i].price);
}
return 0;
}
```
首先,我们定义了一个 `Book` 结构体,用于存储每本图书的信息。然后,我们定义了一个 `BookList` 结构体,其中包含了一个 `books` 数组,用于存储所有的图书信息,以及一个 `length` 变量,用于记录图书数量。
在主函数中,我们首先读入图书数量,然后使用 `for` 循环逐个读入每本图书的信息,将其存储到 `books` 数组中。读入完成后,我们统计了图书数量,并使用 `for` 循环逐行输出每本图书的信息。
注意,在读入字符串时,我们使用 `scanf("%s", book.id)` 的方式,这种方式会自动跳过空格和换行符,并将输入的字符串存储到 `book.id` 中。而在读入浮点数时,我们需要使用 `scanf("%f", &book.price)` 的方式,并在变量名前面加上 `&`,表示将输入的值存储到 `book.price` 所在的内存地址中。
另外,由于我们使用了结构体来存储图书信息,所以在输出图书信息时,需要使用 `.` 操作符来访问结构体中的变量,例如 `bookList.books[i].id` 表示第 `i` 本图书的书号。
阅读全文