7-2 查找单价最高和最低的书籍

7-2 查找单价最高和最低的书籍

编写程序,从键盘输入 n (n<10)本书的名称和定价并存入结构数组中,查找并输出其中定价最高和最低的书的名称和定价。

输出格式语句:

printf("highest price: %.1f, %s\n", );

printf("lowest price: %.1f, %s\n",);

输入输出示例:括号内为说明,无需输入输出

输入样例:

3	(n=3)
Programming in C
21.5
Programming in VB
18.5
Programming in Delphi
25

输出样例:

highest price: 25.0, Programming in Delphi 
lowest price: 18.5, Programming in VB 

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

代码如下: 

#include <stdio.h>
#include <string.h>
struct book{
    char name[80]; // 书名
    double price; // 价格
};
int main(){
    int i,n;
    scanf("%d",&n); // 读取图书数量
    getchar(); // 清除缓冲区
    struct book books[n]; // 创建图书数组
    for(i=0;i<n;i++){
        gets(books[i].name); // 读取书名
        scanf("%lf",&books[i].price); // 读取价格
        getchar(); // 清除缓冲区
    }
    double max,min; // 最高和最低价格
    max=min=books[0].price; // 初始化最高和最低价格
    int maxi,mini; // 最高和最低价格的索引
    maxi=mini=0; // 初始化最高和最低价格的索引
    for(i=1;i<n;i++){ // 遍历所有图书
        if(max<books[i].price){ // 如果发现某本书的价格高于当前的最高价格
            max=books[i].price; // 更新最高价格
            maxi=i; // 更新最高价格的索引
        }
        if(min>books[i].price){ // 如果发现某本书的价格低于当前的最低价格
            min=books[i].price; // 更新最低价格
            mini=i; // 更新最低价格的索引
        }
    }
    printf("highest price: %.1f, %s\n", max,books[maxi].name); // 输出最高价格的图书信息
    printf("lowest price: %.1f, %s", min,books[mini].name); // 输出最低价格的图书信息
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++是一种通用的编程语言,用于开发各种类型的应用程序。关于你提到的查找单价最高最低书籍,我可以给你提供一个简单的示例程序来实现这个功能。以下是一个使用C++编写的程序,可以帮助你实现这个需求: ```cpp #include <iostream> #include <string> #include <vector> #include <algorithm> struct Book { std::string title; double price; std::string author; }; bool compareByPrice(const Book& book1, const Book& book2) { return book1.price < book2.price; } int main() { std::vector<Book> books = { {"Book A", 10.5, "Author A"}, {"Book B", 15.2, "Author B"}, {"Book C", 8.9, "Author C"}, {"Book D", 12.7, "Author D"} }; // 按照价格从低到高排序 std::sort(books.begin(), books.end(), compareByPrice); // 输出最低价格的书籍信息 std::cout << "最低价格的书籍信息:" << std::endl; std::cout << "名:" << books.front().title << std::endl; std::cout << "价格:" << books.front().price << std::endl; std::cout << "作者:" << books.front().author << std::endl; // 输出最高价格的书籍信息 std::cout << "最高价格的书籍信息:" << std::endl; std::cout << "名:" << books.back().title << std::endl; std::cout << "价格:" << books.back().price << std::endl; std::cout << "作者:" << books.back().author << std::endl; return 0; } ``` 这个程序使用了一个`Book`结构体来表示书籍的信息,包括名、价格和作者。通过定义一个比较函数`compareByPrice`,我们可以使用`std::sort`函数对书籍按照价格进行排序。然后,我们可以通过`books.front()`和`books.back()`分别获取最低价格和最高价格的书籍信息,并将其输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值