应用指针解决图书信息包括书名、出版社和价格,任意输入5个图书信息,查找书名为 C language ,修改其出版社、价格信息为 SUST,39.6
时间: 2024-03-23 15:37:06 浏览: 121
好的,让我来给你展示一下如何使用指针来解决这个问题。
首先,我们需要定义一个结构体来存储图书的信息:
```c
struct Book {
char title[50];
char publisher[50];
float price;
};
```
然后,我们可以定义一个结构体数组来存储多个图书的信息:
```c
struct Book books[5];
```
接下来,我们需要输入每本书的信息,可以使用循环来完成:
```c
for (int i = 0; i < 5; i++) {
printf("请输入第%d本书的信息:\n", i+1);
printf("书名:");
scanf("%s", books[i].title);
printf("出版社:");
scanf("%s", books[i].publisher);
printf("价格:");
scanf("%f", &books[i].price);
}
```
然后,我们需要查找书名为 C language 的图书,可以使用循环来遍历数组,并使用 strcmp 函数来比较字符串:
```c
struct Book *p_book = NULL; // 定义指向 Book 结构体的指针
for (int i = 0; i < 5; i++) {
if (strcmp(books[i].title, "C language") == 0) {
p_book = &books[i];
break;
}
}
```
如果找到了对应的图书,就可以使用指针来修改其出版社和价格信息:
```c
if (p_book != NULL) {
strcpy(p_book->publisher, "SUST");
p_book->price = 39.6;
printf("已修改书名为 C language 的图书的信息!\n");
} else {
printf("未找到书名为 C language 的图书!\n");
}
```
最后,我们可以输出所有图书的信息,以验证修改是否成功:
```c
printf("所有图书的信息如下:\n");
for (int i = 0; i < 5; i++) {
printf("第%d本书的信息:\n", i+1);
printf("书名:%s\n", books[i].title);
printf("出版社:%s\n", books[i].publisher);
printf("价格:%.2f\n", books[i].price);
}
```
完整的代码如下:
阅读全文