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. 移动端浏览器和微信浏览器上禁止body的滚动条

    一般禁止body滚动的做法就是设置overflow:hidden. 但是很奇怪的发现在移动端浏览器和微信浏览器上这个不起作用,然后我分析了我的写法,就是在body上加了一个class去定义属性,然后改 ...

  2. SQL Server 数据库查找重复记录的几种方法

    http://www.hanyu123.cn/html/c61/6790.html 一.查某一列(或多列)的重复值.(只可以查出重复记录的值,不能查出整个记录的信息) 例如:查找stuid,stuna ...

  3. 转-ArcGIS Engine中的License设置

    AE开发中的License有两种方法进行设置,一种是通过LicenseControl控件,另一种是通过IAoInitialize接口设置.整个应用程序中只能有一种方式存在,如果进行了两种License ...

  4. C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用

    1.直接调用 已知webservice路径,则可以直接 添加服务引用--高级--添加web引用 直接输入webservice URL.这个比较常见也很简单 即有完整的webservice文件目录如下图 ...

  5. asp rs开启关闭问题

    使用rs.close关闭后,可以直接用rs.open来打开数据表:如果用了set rs = nothing 从内存中清除rs对象,再次加载rs对象就需要使用set rs=server.createob ...

  6. winston写日志(译)

    使用 有两种方式去使用winston,直接通过默认的logger,或者实例化自己的Logger,前者设计的目的是在你的应用程序中共享logger比较方便. 使用默认Logger 使用默认的logger ...

  7. WebPack常用功能介绍

    概述 Webpack是一款用户打包前端模块的工具.主要是用来打包在浏览器端使用的javascript的.同时也能转换.捆绑.打包其他的静态资源,包括css.image.font file.templa ...

  8. ecshop 后台 审核功能

    有三个关键文件 html文件<img src="images/{if $vo.is_check}yes{else}no{/if}.gif" onclick="lis ...

  9. strace追踪未开始或者来不及捕获pid的进程(译)

    我的个人博客网站最近被攻击了,被用来发送一些垃圾邮件.但是我不知道这个进程是怎么来的,用top查看发现一个不知道干什么的perl脚本,决定给用strace查看一下. strace可以追踪一个进程的系统 ...

  10. 线程安全的无锁RingBuffer的实现

    这里的线程安全,是指一个读线程和一个写线程,读写两个线程是安全的,而不是说多个读线程和多个写线程是安全的.. 在程序设计中,我们有时会遇到这样的情况,一个线程将数据写到一个buffer中,另外一个线程 ...