https://www.patest.cn/contests/pat-a-practise/1022

直接模拟,

输入,按id排序,检索

#include <iostream>
#include <string>
#include <algorithm>
using namespace std; struct book //图书结构
{
string id;
string title;
string author;
int k; //关键词数量
string key[5];
string pub;
string year;
}; bool cm(const book &b1,const book &b2); //根据id排序 int main()
{
int n,m,i,j,k;
string temp_s;
book temp_b,*bks;
cin>>n;
bks=new book [n];
cin.get(); //字符串输入过滤回车与空格
for(i=0;i<n;i++) //输入书的信息
{
getline(cin,bks[i].id);
getline(cin,bks[i].title);
getline(cin,bks[i].author);
getline(cin,temp_s);
for(j=0,k=0;j<temp_s.size();j++)
{
if(temp_s[j]!=' ')
bks[i].key[k]+=temp_s[j];
else
k++;
}
bks[i].k=k+1;
getline(cin,bks[i].pub);
getline(cin,bks[i].year);
}
sort(bks,bks+n,cm); //根据id排序 cin>>m;
int cl;
int flag; //标志是否有找到符合条件的书
for(i=0;i<m;i++)
{
cin>>cl;
cin.get(); //跳过":"
cin.get(); //跳过" "
flag=0;
getline(cin,temp_s);
cout<<cl<<": "<<temp_s<<endl;
for(j=0;j<n;j++)
{
switch(cl)
{
case 1:if(bks[j].title==temp_s)
{
cout<<bks[j].id<<endl;
flag=1;
}
break;
case 2:if(bks[j].author==temp_s)
{
cout<<bks[j].id<<endl;
flag=1;
}
break;
case 3:for(k=0;k<bks[j].k;k++)
if(bks[j].key[k]==temp_s)
{
cout<<bks[j].id<<endl;
flag=1;
}
break;
case 4:if(bks[j].pub==temp_s)
{
cout<<bks[j].id<<endl;
flag=1;
}
break;
case 5:if(bks[j].year==temp_s)
{
cout<<bks[j].id<<endl;
flag=1;
}
break;
}
}
if(flag==0)
cout<<"Not Found\n";
} return 0;
} bool cm(const book &b1,const book &b2)
{
return b1.id<b2.id;
}

PAT A 1022. Digital Library (30)【结构体排序检索】的更多相关文章

  1. pat 甲级 1022. Digital Library (30)

    1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Di ...

  2. PAT 甲级 1022 Digital Library (30 分)(字符串读入getline,istringstream,测试点2时间坑点)

    1022 Digital Library (30 分)   A Digital Library contains millions of books, stored according to thei ...

  3. PAT Advanced 1022 Digital Library (30 分)

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

  4. 1022 Digital Library (30 分)

    1022 Digital Library (30 分)   A Digital Library contains millions of books, stored according to thei ...

  5. 1022. Digital Library (30)

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

  6. 1022. Digital Library (30) -map -字符串处理

    题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...

  7. PAT 甲级 1022 Digital Library

    https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 A Digital Library cont ...

  8. 1022 Digital Library (30)(30 point(s))

    problem A Digital Library contains millions of books, stored according to their titles, authors, key ...

  9. 1022 Digital Library (30)(30 分)

    A Digital Library contains millions of books, stored according to their titles, authors, key words o ...

随机推荐

  1. 软件卸载工具 Uninstall Tool 3.5.1 中文破解版

    Uninstall Tool 是一个小巧.安全.快速.强大的软件卸载删除工具,它支持在使用软件本身的卸载程序卸载完毕后,再扫描软件残留的注册及其它残余文件,将其彻底在系统删除!安装监视器可以监视每个应 ...

  2. 记一次MYSQL更新优化

    引言 今天(August 5, 2015 5:34 PM)在给数据库中一张表的结构做一次调整,添加了几个字段,后面对之前的数据进行刷新,刷新的内容是:对其中的一个已有字段url进行匹配,然后更新新加的 ...

  3. HTML-一个网页的头部的大概框架(完善ing)

    正常情况下,一个头部(考虑兼容.响应.title图标的需求),所要填写的内容如下: <!DOCTYPE html> <html> <head> <meta c ...

  4. commons-fileupload.jar实现文件上传

      标签: uploadfileimportexceptionstringmyeclipse 2012-09-06 19:55 1497人阅读 评论(0) 收藏 举报  分类: 好东东(2)  Jav ...

  5. Spring系列之bean的使用

    一.Bean的定义 <bean id="userDao" class="com.dev.spring.simple.MemoryUserDao"/> ...

  6. [Nhibernate]二级缓存(二)

    目录 写在前面 文档与系列文章 更新数据 二级缓存管理 总结 写在前面 本篇文章也算nhibernate入门系列的结尾了,在总结nhibernate系列的过程中,遇到了很多问题,学习的过程也是解决bu ...

  7. 大熊君大话NodeJS之------MongoDB模块(额外篇)

    一,开篇分析 这篇属于扩展知识篇,因为在下面的文章中会用到数据库操作,所以今天就来说说它(Mongodb模块). (1),简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为 ...

  8. tyvj1087 sumsets

    背景 广东汕头聿怀初中 Train#2 Problem1 描述     正整数N可以被表示成若干2的幂次之和.例如,N = 7时,共有下列6种不同的方案:1) 1+1+1+1+1+1+12) 1+1+ ...

  9. ASP.NET 对于文件的下载与上传

    /// <summary> /// 下载附件查看 /// </summary> /// <param name="sender"></pa ...

  10. css3的基本样式

    一.css3字体(@font-face) 二.css3动画 三.css3多列 四.CSS3 outline-offset 属性 五.CSS3 resize 属性