L1-043 阅览室 c语言简单

本题注意点
1.书可以多次被借。当一本书被借走了,还没有归还时,该书可以再次被借,借书的时间要更新。(这个点有点坑)
2.书不能多次归还,如果多次归还,只会使用第一次的归还时间

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int dex,h,m;char a;
        int sum=0;int cnt=0;
        int tim[1000][2]={0};
        for(int i=1;;i++)
        {

            scanf("%d %c %d:%d",&dex,&a,&h,&m);
            if(dex==0)break;//当书名为0,就退出循环,该天工作结束
            if(a=='S')//可以多次借书
            {
                tim[dex][0]=1;//标记变为已借
                tim[dex][1]=h*60+m;
            }
            else if(a=='E'&&tim[dex][0]==1)//只使用第一次还书时间
            {
                tim[dex][0]=0;//标记变为未借
                cnt++;sum=sum+(h*60)+m-tim[dex][1];
            }
        }
        if(cnt!=0)sum=sum*1.0/cnt+0.5;//小心除零错误,同时注意四舍五入
        printf("%d %d\n",cnt,sum);
    }
    return 0;
}



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值