PAT A 1022. Digital Library (30)【结构体排序检索】
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)【结构体排序检索】的更多相关文章
- pat 甲级 1022. Digital Library (30)
1022. Digital Library (30) 时间限制 1000 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Di ...
- PAT 甲级 1022 Digital Library (30 分)(字符串读入getline,istringstream,测试点2时间坑点)
1022 Digital Library (30 分) A Digital Library contains millions of books, stored according to thei ...
- PAT Advanced 1022 Digital Library (30 分)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- 1022 Digital Library (30 分)
1022 Digital Library (30 分) A Digital Library contains millions of books, stored according to thei ...
- 1022. Digital Library (30)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- 1022. Digital Library (30) -map -字符串处理
题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...
- PAT 甲级 1022 Digital Library
https://pintia.cn/problem-sets/994805342720868352/problems/994805480801550336 A Digital Library cont ...
- 1022 Digital Library (30)(30 point(s))
problem A Digital Library contains millions of books, stored according to their titles, authors, key ...
- 1022 Digital Library (30)(30 分)
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
随机推荐
- hoj 2634 How to earn more
有m个项目和n个员工,做项目i可以获得Ai元,但是必须雇用若干指定的员工.雇用员工j需要Bj元,一旦雇用便可以参与多个项目.问最大收益. 1<=M,N<=100. 最小割. 源点向每个项目 ...
- CDN的combo技术能把多个资源文件合并引用,减少请求次数
CDN的combo技术能把多个资源文件合并引用,减少请求次数.比如淘宝的写法: <link rel="stylesheet" href="//g.alicdn.co ...
- EL表达式不解析
使用EL表达式时,遇到了页面直接显示"time: ${requestScope.time}",不解析的情况.查找资料原因是:在默认情况下,Servlet 2.3 / JSP 1.2 ...
- Django简单的数据库操作
当然,本篇的前提是你已经配置好了相关的环境,这里就不详细介绍. 一. 在settings.py文件中设置数据库属性. 如下: DATABASES = { 'default': { 'ENGINE': ...
- CSS-学习笔记一
CSS(层叠样式表)做网页的外观 四种样式: 权重: 行内样式>内嵌式>链接式 1. 行内样式 <div style="color:red;font-size:30px&q ...
- C#------接口的理解
转载: http://blog.jobbole.com/85751/
- 第二轮冲刺-Runner站立会议03
今天做了什么:查看gridview与baseadapter适配器 明天准备做什么:继续gridview与baseadapter适配器 遇到的困难:暂无
- wait、notify、sleep、interrupt对比分析
对比分析Java中的各个线程相关的wait().notify().sleep().interrupt()方法 方法简述 Thread类 sleep:暂停当前正在执行的线程:(类方法) yield:暂停 ...
- ecshop 多表删除
$sql = 'DELETE O, G FROM ' . $GLOBALS['ecs']->table('delivery_order') . ' AS O, ' . $GLOBALS['ecs ...
- IOS热更新-JSPatch实现原理+Patch现场恢复
关于HotfixPatch 在IOS开发领域,由于Apple严格的审核标准和低效率,IOS应用的发版速度极慢,稍微大型的app发版基本上都在一个月以上,所以代码热更新(HotfixPatch)对于IO ...