• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
啥都不会,啥都想学
博客园    首页    新随笔    联系   管理    订阅  订阅

团体程序设计天梯赛-练习集 L1-043 阅览室 代码没有通过,不知道哪里没有考虑到


团体程序设计天梯赛-练习集 L1-043 阅览室
题目:
  天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下**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

 实现代码:(.cpp)

#include<iostream>
#include<cmath>
using namespace std;
int main() {
	int n;
	cin>>n;
	int time[1001]={0};
	int count=0;
	double alltime=0;
	char c,g;
	int m;
	int hh,mm;
	while(n>0) {
		//	书的序号(m)  (c)书的状态
		cin>>m>>c>>hh>>g>>mm;
		if(m==0) {//一天结束
			//cout<<"第"<<i<<"天";
			cout<<count<<" ";
			if(count>0) {
				cout<<round(alltime/count)<<endl;
			} else {
				cout<<count<<endl;
			}
			//每天初始化
			for(int i=0; i<1001; i++) {
				time[i]=0;
			}
			n--;
			count=0;
			c=g=' ';
		} else {
			if( c=='S' && time[m]==0 ) {//没借出的书才能借
				time[m]=hh*60+mm;
			//cout<<c<<" "<<hh<<" "<<mm<<endl;
			} else if(c=='E' && time[m]!=0) {//已借出的书才能还
				alltime+=hh*60+mm-time[m];
				time[m]=0; 					//书名为m的书归还成功
			//cout<<m<<" "<<hh*60+mm<<" "<<time[m]<<endl;
				count++;
			}
		}
	}
	return 0;
}

 

##代码没有通过,不知道哪里没有考虑到

posted @ 2020-09-27 01:31  啥都不会,啥都想学  阅读(53)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3