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 ...
随机推荐
- a版本冲刺第七天
队名:Aruba 队员: 黄辉昌 李陈辉 林炳锋 鄢继仁 张秀锋 章 鼎 学号 昨天完成的任务 今天做的任务 明天要做的任务 困难点 体会 408 学习活动的消息传递和日志分析 因为大家都在赶进 ...
- python更新后yum问题
How to switch between Python versions on Fedora Linux Currently, the default python version on Fedor ...
- 非常提高mac生产力的一些插件归纳整理
1.cheatsheet 快捷键提示插件,下载后按command键3秒,可以显示当前app的所有快捷键. 比如我现在在chrome的界面,按下command三秒,会弹出一个快捷键提示框. 2.Ba ...
- 10月25日下午PHP静态、抽象、接口
多态(运行多态)概念:当父类引用指向子类实例,由于子类里面对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同状态.条件:1.必须发生在继承下2.必须重写父类方法3.父类引用调用该方法 如果 ...
- gis数据格式转换(数据导入)ConvertFeaCls
本文主要对数据导入等里 常用的不同格式数据创建.转换等 进行代码示例.主要用到IFeatureDataConverter.ConvertFeatureClass方法. 代码如下,难度不大,只是个技巧问 ...
- C# Httpclient编程
今天研究了一天C#如何添加cookie到httpcient里面,从而发请求时,能把cookie作为头部发出,最后发现根本加不进去. Httpclient的cookie是来自上一个请求的响应,httpc ...
- FineUI常见问题
常见问题解答(必读) http://fineui.com/bbs/forum.php?mod=viewthread&tid=655
- 2、HTML 基础知识
一.HTT(PHyper Text Markup Language)即超文本语言. 特点: 1.通过标签来定义的语言,代码都是由标签所组成 2.不区分大小写 3.由<html>开始< ...
- sqlplus连接oracle失败分析和解决
背景: 多台Linux服务器需要安装Oracle客户端,实现和Oracle数据库连接做业务处理. 安装完第一台后,直接将安装的目录压缩并复制到其他几台机器上,启动sqlplus连接数据库时,一直提示输 ...
- C和指针 第十二章 使用结构和指针 双链表和语句提炼
双链表中每个节点包含指向当前和之后节点的指针,插入节点到双链表中需要考虑四种情况: 1.插入到链表头部 2.插入到链表尾部 3.插入到空链表中 4.插入到链表内部 #include <stdio ...