C语言给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。 输出格式: 在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
时间: 2024-03-25 19:38:05 浏览: 58
下面是一份 C 语言代码,实现了题目要求的功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 10
#define MAX_NAME_LEN 31
struct Book {
char name[MAX_NAME_LEN];
double price;
};
int main()
{
int n;
struct Book books[MAX_N];
struct Book max_book, min_book;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s%lf", books[i].name, &books[i].price);
if (i == 0) {
max_book = min_book = books[0];
} else {
if (books[i].price > max_book.price) {
max_book = books[i];
}
if (books[i].price < min_book.price) {
min_book = books[i];
}
}
}
printf("%.2f, %s\n", max_book.price, max_book.name);
printf("%.2f, %s\n", min_book.price, min_book.name);
return 0;
}
```
程序首先读入书的数量 `n`,然后用一个结构体数组 `books` 存储每本书的信息。结构体 `Book` 包含两个字段,一个是名称 `name`,一个是价格 `price`。在读入每本书的信息时,程序会同时更新最高价和最低价的书的信息,最后输出它们的名称和价格即可。需要注意的是,输出的价格需要保留两位小数。
阅读全文