从键盘输入n本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。试编写相应程序。C语言
时间: 2024-12-14 14:13:00 浏览: 17
在C语言中,你可以创建一个结构体数组来存储书籍信息,然后通过循环遍历数组找到价格最高和最低的书籍。这里是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
// 定义书籍结构体
struct Book {
char name[50];
float price;
};
int main() {
int n;
printf("请输入你要存储的书籍数量:");
scanf("%d", &n);
// 结构体数组
struct Book books[n];
// 输入书籍信息
for (int i = 0; i < n; i++) {
printf("请输入第%d本书的名称和定价:\n", i + 1);
fgets(books[i].name, sizeof(books[i].name), stdin); // 防止换行符
scanf("%f", &books[i].price);
}
// 初始化最高价和最低价
float max_price = books[0].price;
float min_price = books[0].price;
char max_book_name[50] = "";
char min_book_name[50] = "";
// 比较价格并更新记录
for (int i = 1; i < n; i++) {
if (books[i].price > max_price) {
max_price = books[i].price;
strcpy(max_book_name, books[i].name);
}
if (books[i].price < min_price) {
min_price = books[i].price;
strcpy(min_book_name, books[i].name);
}
}
// 输出结果
printf("价格最高的书是 '%s', 定价 %.2f.\n", max_book_name, max_price);
printf("价格最低的书是 '%s', 定价 %.2f.\n", min_book_name, min_price);
return 0;
}
```
这个程序会提示用户输入每本书的名称和定价,然后在结束后显示最高和最低价格的书籍信息。注意`fgets`和`scanf`配合使用时,为了防止误读换行符,我们使用了`fgets`先获取整个行的内容。
阅读全文