7-8 阅览室 (20 point(s))
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。
注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录。另外,题目保证书号是书的唯一标识,同一本书在任何时间区间内只可能被一位读者借阅。
输入格式:
输入在第一行给出一个正整数N(≤10),随后给出N天的纪录。每天的纪录由若干次借阅操作组成,每次操作占一行,格式为:
书号([1, 1000]内的整数) 键值(S或E) 发生时间(hh:mm,其中hh是[0,23]内的整数,mm是[0, 59]内整数)
每一天的纪录保证按时间递增的顺序给出。
输出格式:
对每天的纪录,在一行中输出当天的读者借书次数和平均阅读时间(以分钟为单位的精确到个位的整数时间)。
输入样例:
3
1 S 08:10
2 S 08:35
1 E 10:00
2 E 13:16
0 S 17:00
0 S 17:00
3 E 08:10
1 S 08:20
2 S 09:00
1 E 09:20
0 E 17:00
输出样例:
2 196
0 0
1 60
思路: 这道题目难度不大,就是模拟图书借阅过程,还书成功时,记录时间次数即可。我在做这道题目的时候是因为最后输出的时候,关于进位出错了。 我用的时第二行的输出,但是就是报错,使用第一行的就通过,如果哪位朋友可以解答以下,烦请指正。
//正确cout << count << " " << (int)(1.0*sum/count + 0.5) << endl;//错误//cout << count << " " << ceil(1.0*sum/count) << endl;
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;struct Book{char key = 'N';int hh = 0;int mm = 0;
}book[1005];int calculate(int h1,int m1, int h2,int m2);int main(){int n;cin >> n;for(int i = 0; i < n; i++){int sum = 0;int count = 0;while(true){int id;char key,punctuation;int h,m;cin >> id >> key >> h >> punctuation >> m;if(id == 0)break;//还书时应注意情况if(key =='E'){if(book[id].key == 'E' || book[id].key=='N')continue;}if(key == 'E' && book[id].key == 'S'){//还书成功,那么就计算时间啦count++;int time = calculate(book[id].hh,book[id].mm, h, m);sum += time;}//更新书本信息 book[id].key = key;book[id].hh = h;book[id].mm = m;}if(count){//正确cout << count << " " << (int)(1.0*sum/count + 0.5) << endl;//错误//cout << count << " " << ceil(1.0*sum/count) << endl;}else{cout <<"0 0\n";} }return 0;
}
int calculate(int h1,int m1, int h2,int m2){return h2*60+m2 - h1*60-m1;
}
7-8 阅览室 (20 point(s))相关推荐
- L1-043 阅览室 (20 分)(在线模拟题)
L1-043 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为 ...
- 7-183 阅览室 (20 分)
7-183 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不 ...
- L1-043 阅览室 (20 分)andL1-048 矩阵A乘以B (15 分)
L1-043 阅览室 (20 分) 题目: 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时 ...
- 7-8 阅览室 (20 分)
7-8 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过 ...
- L1-043 阅览室 (20 分)——memset补充
L1-043 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为 ...
- C语言 满分代码:L1-043 阅览室 (20分)(解题报告)
立志用更少的代码做更高效的表达 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超 ...
- L1-043 阅览室 (20分)
题目: 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过1000的正整数.当管 ...
- PTA 阅览室 (20 分) 精简版
天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过1000的正整数.当管理员将0 ...
- 天梯赛 L1-043 阅览室 (20 分)
只需要记录每本书借的时间,初始化为-1表示还未被借阅或者已经被还回来了 涉及除法分母必须分类讨论! #include <iostream> using namespace std; con ...
- L1-043 阅览室 (20 分) java
分析 思路: 只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录. 2.1 S的话就让他直接借,记录下这本书的借出时间,因为此题是当天多次借同一本书,以最后一次借书时间为准: 2.2 ...
最新文章
- 分享5个我「 最死忠 」的Windows10软件
- C++中的const成员函数介绍
- 监控利器Prometheus初探
- Java对象序列化详解
- 22-随机抽样一致算法RANSAC
- embedv.php_PHP与视频播放插件功能实现,非常简单
- Android应用安全开发之浅谈网页打开APP
- NUC1921 E.迷雾森林【筛选法】
- Js之History对象
- Linux的运行级别/模式
- Cadence学习笔记
- WPS OFFICE
- 一文搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU)
- matlab7.0官方下载64位win10,window10下MATLAB 7.0下载及安装
- HDU 3065 病毒侵袭持续中 【AC自动机模版题】
- 蚂蚁金服收购印度外卖APP?
- 域名解析指向详细操作(图解)
- 【进阶篇】前端学习路线
- 以地理国情调查任务为基础的地图矢量化流程研究
- AMD将推出7纳米GPU Vega,专为深度学习和机器学习打造
热门文章
- 隐藏activity的头部的activity名
- ubuntu中使用.rpm
- Robust Representation Learning with Feedback for Single Image Deraining论文解读
- android仿今日头条App、多种漂亮加载效果、选择器汇总、记事本App、Kotlin开发等源码...
- Oracle Study之-- enq:SQ contention等待事件
- 持续集成(4)工具对比
- 大数据解读剩女现象:谁遗忘了她们的爱情?
- 获取System.__ComObject的真正类型
- java web中的相对路径和绝对路径
- html中设置锚点定位的几种常见方法