用c语言编写给定n本书的名称和定价,查找并输出其中定价最高和最低的书的名称和定价。要求将书籍信息(书名,定价)定义为结构类型。输入格式:输入第一行给出正整数n(<10),随后给出n本书的信息。每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出书价(正浮点数)。题目保证没有同样价格的书。输出格式:在一行中按照“价格,书名”的格式先后输出价格最高和最低的书。价格保留2位小数
时间: 2023-06-17 15:02:22 浏览: 190
以下是这个问题的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 10
struct book {
char name[31];
float price;
};
int main() {
int n;
struct book books[MAX_BOOKS];
struct book *max_book = NULL, *min_book = NULL;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s%f", books[i].name, &books[i].price);
if (max_book == NULL || books[i].price > max_book->price) {
max_book = &books[i];
}
if (min_book == NULL || 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;
}
```
首先,我们定义了一个名为 `book` 的结构体来存储书籍信息,包括书名和价格。然后我们定义了一个数组 `books` 来存储所有的书籍信息。接下来,我们使用一个循环来读取所有书籍的信息,并且在每次读入一本书籍信息时,我们会比较其价格和当前最高价和最低价的书籍,并且更新最高价和最低价的书籍。最后,我们输出最高价和最低价的书籍的信息。
需要注意的是,我们在循环中使用了指向结构体的指针 `max_book` 和 `min_book` 来记录最高价和最低价的书籍。当找到一个价格更高(或更低)的书籍时,我们将指针指向该书籍的结构体。在输出时,我们只需使用指针即可访问最高价和最低价的书籍的信息。
阅读全文