6. 基于顺序存储结构的图书信息表的最爱图书的查找

    科技2022-09-01  97

    题目描述

     

    定义一个包含图书信息(书号、书名、价格)的顺序表,读入相应的图书数据来完成图书信息表的创建,然后根据指定的最爱图书的名字,查找最爱的图书,输出相应图书的信息。   

     

    输入描述

     

    总计n+m+2 行。首先输入n+1 行,其中,第一行是图书数目n,后行是本图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,价格之后没有空格。其中书号和书名为字符串类型,价格为浮点数类型。然后输入m+1 行,其中,第一行是一个整数m,代表查找次,后行是每次待查找的最爱图书名字。   

     

    输出描述

     

    若查找成功:

    总计输出m*k+1)行,对于每一次查找,第一行是最爱图书数目(同一书名的图书可能有多本),后行是最爱图书的信息(书号、书名、价格),每本图书信息占一行,书号、书名、价格用空格分隔,其中价格输出保留两位小数。

    若查找失败:

     只输出以下提示:抱歉,没有你的最爱!   

     

    样例输入

    <span style="color:#515a6e"><span style="color:#2c3e50"><span style="color:#515a6e"><span style="color:#263238">6 9787302257646 程序设计基础 25.00 9787302164340 程序设计基础(第2版) 20.00 9787302219972 单片机技术及应用 32.00 9787302203513 单片机原理与应用技术 26.00 9787810827430 工业计算机控制技术——原理与应用 29.00 9787811234923 汇编语言程序设计教程 21.00 2 数据结构 程序设计基础</span></span></span></span>

    样例输出

    <span style="color:#515a6e"><span style="color:#2c3e50"><span style="color:#515a6e"><span style="color:#263238">抱歉,没有你的最爱! 1 9787302257646 程序设计基础 25.00</span></span></span></span> /** * main函数返回值不能为void,否则会汇编出错,请使用int main(),并在最后return 0。 * 虽然VC等windows下的编译器支持,但C/C++标准中不允许使用void main()! */ #include<stdio.h> #include<string.h> //书结构体 typedef struct{ char no[20]; char name[50]; float price; }Book; int main(){ Book book[20]; int n,m,num[10],a=0; scanf("%d",&n); //输入书 int i=0; for(;i<n;i++){ scanf("%s %s %f",&book[i].no,&book[i].name,&book[i].price); } //查找个数 scanf("%d",&m); //放书名 int j=0; for(;j<m;j++){ scanf("%s",&book[j+n].name); } //对比查找 int x=0; for(;x<m;x++){ int y=0; for(;y<n;y++){ int b=strcmp(book[x+n].name,book[y].name); if(!b){ a++; num[a]=y; } } if(!a) printf("抱歉,没有你的最爱!\n"); } //输出 printf("%d\n",a); int z=1; for(;z<=a;z++){ n=num[z]; printf("%s %s %.2f\n",book[n].no,book[n].name,book[n].price); } return 0; }

     

     
    Processed: 0.008, SQL: 9