C语言练习——书籍查找(简易版)

举报
Code_流苏 发表于 2022/04/20 14:47:08 2022/04/20
【摘要】 C语言练习——书籍查找(简易版)

C语言练习——书籍查找(简易版)

名人说:古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼

🐼本篇内容简介一、问题呈现-->二、源码实现(+详细注释)-->三、输出结果展示

一、问题呈现

1.问题描述

Problem Description

给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。

2.输入输出

Input

输入第一行给出正整数n(<10),随后给出n本书的信息。
每本书在一行中给出书名,即长度不超过50的字符串,随后一行中给出正实数价格。
注意:题目保证没有同样价格的书。

Output

在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。

3.测试样例

1️⃣样例1

Sample Input

3
C Book
24
C++ Book
25
Java Book
26

Sample Output

26.00,Java Book
24.00,C Book

2️⃣样例2

Sample Input

4
C Book
28
C++ Book
30
Java Book
27
Python Book
32

Sample Output

32,Python Book
27,Java Book

二、源码实现(+详细注释)

1.注释版

//编码及注释:Code_流苏
//定义头文件
#include<stdio.h>
#include<stdlib.h>
//书籍查询
struct book
{
    char name[50];//书名
    double price;//价格
};
//主函数
int main()
{
	//定义n 代表书籍的数量
    int n;
    //定义结构体变量 数组
    struct book b[10];
    //输入书籍数量
    scanf("%d",&n);
    int i;
    //输入书名和价格
    for(i=0;i<n;i++)
    {
        getchar();
        gets(b[i].name);
        scanf("%lf",&b[i].price);
    }
    //定义两个 标记变量 均赋值为0
    int flag1=0,flag2=0;
    //遍历查找书价最高的 并用flag1存储标记
    for(i=1;i<n;i++)
    {
       if(b[i].price>=b[flag1].price) 
	   		flag1=i;
    }
    //遍历查找书价最低的 并用flag2存储标记
    for(i=1;i<n;i++)
    {
       if(b[i].price<=b[flag2].price) 
	   		flag2=i;
    }
    //输出显示
    printf("书籍价格最高的:书价:%.2lf,书名: %s\n",b[flag1].price,b[flag1].name);
    printf("书籍价格最低的:书价:%.2lf,书名: %s\n",b[flag2].price,b[flag2].name);
    //如果正常返回0 说明程序执行成功 非0 则有出错或异常	
    return 0;

}

2.简洁版

#include<stdio.h>
#include<stdlib.h>

struct book
{
    char name[50];
    double price;
};

int main()
{

    int n;

    struct book b[10];

    scanf("%d",&n);
    int i;
    for(i=0;i<n;i++)
    {
        getchar();
        gets(b[i].name);
        scanf("%lf",&b[i].price);
    }

    int flag1=0,flag2=0;

    for(i=1;i<n;i++)
    {
       if(b[i].price>=b[flag1].price) 
	   		flag1=i;
    }

    for(i=1;i<n;i++)
    {
       if(b[i].price<=b[flag2].price) 
	   		flag2=i;
    }

    printf("书籍价格最高的:书价:%.2lf,书名: %s\n",b[flag1].price,b[flag1].name);
    printf("书籍价格最低的:书价:%.2lf,书名: %s\n",b[flag2].price,b[flag2].name);

    return 0;

}

三、输出结果展示

为了使整体内容简洁,此处只展示一组测试数据结果。

1.输出结果

3
C Book
24
C++ Book
25
Java Book
26
书籍价格最高的:书价:26.00,书名: Java Book
书籍价格最低的:书价:24.00,书名: C Book

--------------------------------
Process exited after 0.9845 seconds with return value 0
请按任意键继续. . .

2.输出结果(图示版)

在这里插入图片描述


作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)

★喜欢的话,还请多多点赞与关注! 感谢支持!
C语言100题练习专栏计划持续进行,欢迎评论交流学习!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。