图书信息包括书名、出版社和价格,任意输入5个图书信息,查找书名为 C language ,修改其出版社、价格信息为 SUST,39.6 要求:使用指针指向 结构体数组的完成 。
时间: 2024-03-26 07:36:00 浏览: 16
好的,我可以帮你解决这个问题。你可以按照以下代码格式输入5个图书信息:
```c
#include <stdio.h>
#include <string.h>
struct book {
char name[50];
char publisher[50];
float price;
};
int main() {
struct book books[5];
int i;
// 输入5个图书信息
for (i = 0; i < 5; i++) {
printf("请输入第%d本书的信息:\n", i+1);
printf("书名:");
scanf("%s", books[i].name);
printf("出版社:");
scanf("%s", books[i].publisher);
printf("价格:");
scanf("%f", &books[i].price);
}
// 查找书名为 C language 的图书并修改其出版社和价格信息
for (i = 0; i < 5; i++) {
if (strcmp(books[i].name, "C language") == 0) {
strcpy(books[i].publisher, "SUST");
books[i].price = 39.6;
break;
}
}
// 输出修改后的图书信息
printf("修改后的图书信息为:\n");
for (i = 0; i < 5; i++) {
printf("书名:%s\t出版社:%s\t价格:%.2f\n", books[i].name, books[i].publisher, books[i].price);
}
return 0;
}
```
这里定义了一个 `book` 结构体,其中包含了图书的名字、出版社和价格。然后定义了一个包含5个 `book` 结构体的数组来存储5本图书的信息。通过循环输入5本图书的信息。
接下来,再通过循环查找书名为 C language 的图书,并修改其出版社和价格信息。
最后,再循环输出修改后的所有图书信息。需要注意的是,这里使用了字符串比较函数 `strcmp()` 来判断书名是否为 C language。同时,为了方便修改,这里使用了字符串复制函数 `strcpy()` 来修改出版社名称。