天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下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))相关推荐

  1. L1-043 阅览室 (20 分)(在线模拟题)

    L1-043 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为 ...

  2. 7-183 阅览室 (20 分)

    7-183 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不 ...

  3. L1-043 阅览室 (20 分)andL1-048 矩阵A乘以B (15 分)

    L1-043 阅览室 (20 分) 题目: 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时 ...

  4. 7-8 阅览室 (20 分)

    7-8 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过 ...

  5. L1-043 阅览室 (20 分)——memset补充

    L1-043 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为 ...

  6. C语言 满分代码:L1-043 阅览室 (20分)(解题报告)

    立志用更少的代码做更高效的表达 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超 ...

  7. L1-043 阅览室 (20分)

    题目: 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过1000的正整数.当管 ...

  8. PTA 阅览室 (20 分) 精简版

    天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并按下E键,程序结束计时.书号为不超过1000的正整数.当管理员将0 ...

  9. 天梯赛 L1-043 阅览室 (20 分)

    只需要记录每本书借的时间,初始化为-1表示还未被借阅或者已经被还回来了 涉及除法分母必须分类讨论! #include <iostream> using namespace std; con ...

  10. L1-043 阅览室 (20 分) java

    分析 思路: 只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪录. 2.1 S的话就让他直接借,记录下这本书的借出时间,因为此题是当天多次借同一本书,以最后一次借书时间为准: 2.2 ...

最新文章

  1. 分享5个我「 最死忠 」的Windows10软件
  2. C++中的const成员函数介绍
  3. 监控利器Prometheus初探
  4. Java对象序列化详解
  5. 22-随机抽样一致算法RANSAC
  6. embedv.php_PHP与视频播放插件功能实现,非常简单
  7. Android应用安全开发之浅谈网页打开APP
  8. NUC1921 E.迷雾森林【筛选法】
  9. Js之History对象
  10. Linux的运行级别/模式
  11. Cadence学习笔记
  12. WPS OFFICE
  13. 一文搞懂激活函数(Sigmoid/ReLU/LeakyReLU/PReLU/ELU)
  14. matlab7.0官方下载64位win10,window10下MATLAB 7.0下载及安装
  15. HDU 3065 病毒侵袭持续中 【AC自动机模版题】
  16. 蚂蚁金服收购印度外卖APP?
  17. 域名解析指向详细操作(图解)
  18. 【进阶篇】前端学习路线
  19. 以地理国情调查任务为基础的地图矢量化流程研究
  20. AMD将推出7纳米GPU Vega,专为深度学习和机器学习打造

热门文章

  1. 隐藏activity的头部的activity名
  2. ubuntu中使用.rpm
  3. Robust Representation Learning with Feedback for Single Image Deraining论文解读
  4. android仿今日头条App、多种漂亮加载效果、选择器汇总、记事本App、Kotlin开发等源码...
  5. Oracle Study之-- enq:SQ contention等待事件
  6. 持续集成(4)工具对比
  7. 大数据解读剩女现象:谁遗忘了她们的爱情?
  8. 获取System.__ComObject的真正类型
  9. java web中的相对路径和绝对路径
  10. html中设置锚点定位的几种常见方法