题目要求从键盘输入n(n<10)本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。请编写相应程序。
时间: 2024-04-30 08:21:26 浏览: 104
以下是一个基于结构体的 C 语言程序,实现了题目要求的功能:
```c
#include <stdio.h>
#define MAX_BOOKS 10
typedef struct book {
char name[50];
float price;
} Book;
int main() {
int n;
Book books[MAX_BOOKS];
float max_price = 0, min_price = 1000000;
int max_index, min_index;
printf("请输入书的数量(不超过 10 本):");
scanf("%d", &n);
printf("请输入书的名称和定价:\n");
for (int i = 0; i < n; i++) {
printf("第 %d 本书:\n", i + 1);
scanf("%s%f", books[i].name, &books[i].price);
if (books[i].price > max_price) {
max_price = books[i].price;
max_index = i;
}
if (books[i].price < min_price) {
min_price = books[i].price;
min_index = i;
}
}
printf("\n最高价的书是《%s》,价格为 %.2f 元。\n", books[max_index].name, max_price);
printf("最低价的书是《%s》,价格为 %.2f 元。\n", books[min_index].name, min_price);
return 0;
}
```
程序中定义了一个结构体 `Book`,包含了书的名称和价格两个属性。程序首先从键盘输入书的数量 `n`,然后依次输入每一本书的名称和价格,并将它们存入结构体数组 `books` 中。在输入的同时,程序记录下了价格最高的书和价格最低的书的索引。
最后,程序输出价格最高和价格最低的书的名称和价格。需要注意的是,在输出字符串中要使用 `%s` 和 `%f` 分别对应书的名称和价格。另外,价格的精度可以通过 `.2` 来控制,表示保留两位小数。
阅读全文