题目

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

解题思路

思路不难,但是这个题是挖了坑的…
借书时间:可能是0点0时,所以有时候初值为0不可行
取整:四舍五入,所以需要用实型变量或者额外处理
重置:隔天的记录不会产生影响,也就是说每天输入完成要重置
故障:如果有只借不还或者只还不借的则忽视它

…一开始我没有判断是否借出,我直接赋初值为-1,因为时间都为非负数,所以不为-1则借出了
但是第二个测试点没过…
然后老老实实再定义一个数组判断是否借出…

AC代码

#include<stdio.h>
#include<string.h>
int main()
{int book[1005]= {-1};int b[1005];int n;scanf("%d",&n);while(n--){memset(b,0,sizeof(b));int name,num=0,time1,time2;float all=0;char judge;while(~scanf("%d %c %d:%d",&name,&judge,&time1,&time2)){if(name==0)break;int time_=time1*60+time2;if(judge=='S'){book[name]=time_;b[name]=1;}else if(b[name]==1&&judge=='E'){++num;all+=time_-book[name];b[name]=0;}}if(num!=0)all=all/num;printf("%d %.0f\n",num,all);}
}

PTA L1-043 阅览室相关推荐

  1. PAT L1 043 阅览室

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

  2. PTA L1题目合集(更新至2019.3)

    L1-001 Hello World (5 分) 链接:https://pintia.cn/problem-sets/994805046380707840/problems/9948051471320 ...

  3. 连续因子pta c语言,PTA --- L1-006 连续因子

    一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续的数字.给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的 ...

  4. 团体程序设计天梯赛-练习集-java

    java不一定能都过 有星号*的都是我java过不去的 但是代码思路都是对的 如果需要c++的 可以留言 L1 L2 L3 001 Hello World 紧急救援 凑零钱 002 打印沙漏 链表去重 ...

  5. PTA L1_043 阅览室(详解坑点)

    PTA L1_043 阅览室(详解及坑点) 阅览室 一.问题再现 二.问题分析 (一).输入分析 (二).规则分析 (三).输出分析 三.坑点分析 (一).到底有多坑 (二).测试点0,2 (三).测 ...

  6. CCCC 天梯赛 PTA ZOJ 题目 L1 L2 L3

    PTA 天梯赛题目整理 L2 难点 **L2-001 紧急救援** **L2-002 链表去重** **L2-003 月饼** **L2-004 这是二叉搜索树吗** **L2-005 集合相似度** ...

  7. [PTA]2021天梯赛-总决赛 L1题解合集

    文章目录 前言说明 题解 人与神 (5 分) 两小时学完C语言 (5 分) 强迫症 (10 分) 降价提醒机器人 (10 分) 大笨钟的心情 (15 分) 吉老师的回归 (15 分) 天梯赛的善良 ( ...

  8. 【2021团体程序设计天梯赛】L1部分(PTA,L1-073到L1-080)题解代码

    概要 L1一共8题,5分,10分,15分,20分各两题. 5分题一般会输入输出就行,10分题就是一个循环或者选择结构 15分题有简单的模拟和查找,20分题是稍微繁琐的简单模拟这样. L1-073 人与 ...

  9. 【2020团体程序设计天梯赛】L1部分(PTA,L1-065到L1-072)题解代码

    概要 L1一共8题,5分,10分,15分,20分各两题. 5分题一般会输入输出就行,10分题就是一个循环或者选择结构 15分题有简单的模拟和查找,20分题是稍微繁琐的简单模拟这样. L1-065 嫑废 ...

  10. PTA|团队程序设计天梯赛-练习集题解(L1)

    L1-001 Hello World (5 分) 这道超级简单的题目没有任何输入. 你只需要在一行中输出著名短句"Hello World!"就可以了. 输入样例: 无 输出样例: ...

最新文章

  1. 数学建模之图像处理---颜色建模
  2. 吸烟检测 yolov5开源推荐
  3. 常微分方程matlab求解
  4. java对象赋值_Java 对象不使用时为什么要赋值为 null?
  5. cesium鼠标左键获取经纬度_效率达人们怎么充分利用鼠标提高效率?
  6. ECMAScript 6的解构赋值 ( destructuring assignment)
  7. 跟我一起学.NetCore之配置初体验
  8. 583. 两个字符串的删除操作
  9. 情怀再次输给现实!中国式星巴克,如今亏到连租金都交不起
  10. android dialog 隐藏状态栏_Flutter-最近搞了个项目-启动页Splash,Navigator.pop无法关闭Dialog...
  11. psp模拟器完美字库_安卓PSP模拟器评测:战神——斯巴达之魂
  12. MicroSIP软电话安装配置说明
  13. 15 个常见的 Node.js 面试问题及答案
  14. 互联网下半场的基本玩法
  15. 转载 Java基本数据类型
  16. 改变input框disabled 属性的背景颜色以及字体颜色
  17. 微信新增「炸屎」表情互动特效,玩上瘾了
  18. Python中Scrapy框架的代理使用
  19. python urlencode函数 adb打开,Python urlencode和unquote函数使用实例解析
  20. 计算机组成原理——移位运算

热门文章

  1. QT定时器:QTimer
  2. JavaWeb丨图书管理系统
  3. deformer node
  4. 如何对班级表中的班级名称进行分组查询?
  5. 太有趣了!五个处理图像的场景都是Python完成的
  6. MySQL基础总结(上)
  7. Numpy数据类型转换astype,dtype
  8. 10.11 10.12 英语单词
  9. Eclipse WTP 入门
  10. Linux压缩和解压命令:tar,gzip,zip(unzip),rar