C语言查找书籍:从键盘输入 n 本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。试编写相应程序。
时间: 2024-02-03 17:12:55 浏览: 78
下面是一个简单的 C 语言程序,实现了您所需要的功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 100
struct Book {
char name[100];
float price;
};
int main() {
int n;
struct Book books[MAX_BOOKS];
float max_price = 0, min_price = 999999;
char max_name[100], min_name[100];
printf("请输入书的数量:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第 %d 本书的名称和价格:", i + 1);
scanf("%s%f", books[i].name, &books[i].price);
if (books[i].price > max_price) {
max_price = books[i].price;
strcpy(max_name, books[i].name);
}
if (books[i].price < min_price) {
min_price = books[i].price;
strcpy(min_name, books[i].name);
}
}
printf("价格最高的书是 %s,价格为 %.2f。\n", max_name, max_price);
printf("价格最低的书是 %s,价格为 %.2f。\n", min_name, min_price);
return 0;
}
```
程序中定义了一个结构体 `Book`,包含了书的名称和价格。使用一个结构体数组 `books` 存储输入的书籍信息。在输入每一本书的信息时,分别比较它的价格和当前的最高/最低价格,并更新记录。最后输出找到的价格最高和最低的书籍的名称和价格。
需要注意的是,程序中假设了最开始输入的价格都不会超过 999999,这是为了方便比较而设置的。如果需要支持更大的价格范围,可以将 `min_price` 初始化为一个更大的值。
阅读全文