C语言给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
时间: 2024-05-14 15:15:32 浏览: 212
以下是一个简单的C语言程序,可以实现这个功能:
```
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 100
struct Book {
char name[50];
double price;
};
int main() {
int n;
struct Book books[MAX_BOOKS];
double max_price = 0, min_price = 1e9;
int max_index, min_index;
printf("请输入书籍数量:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d本书的名称和价格:", i+1);
scanf("%s %lf", 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("最高价格书籍:%s %.2lf\n", books[max_index].name, books[max_index].price);
printf("最低价格书籍:%s %.2lf\n", books[min_index].name, books[min_index].price);
return 0;
}
```
程序首先通过 `scanf` 获取用户输入的书籍数量,然后使用一个结构体数组 `books` 存储每一本书的名称和价格。同时,程序使用两个变量 `max_price` 和 `min_price` 记录当前找到的最高价格和最低价格。
在输入每一本书的信息时,程序会逐个比较价格,更新 `max_price` 和 `min_price`,以及对应的索引 `max_index` 和 `min_index`。
最后,程序输出找到的最高价格和最低价格的书籍名称和价格。
注意,本程序未对输入的书籍数量进行检查,如果用户输入的数量超过了 `MAX_BOOKS`,可能会导致程序出错。
阅读全文