栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

scau8590 队列的应用——银行客户平均等待时间

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

scau8590 队列的应用——银行客户平均等待时间

某银行有一个客户办理业务站,在一天内随机地有客户到达,设每位客户的业务办理时间是某个范围内的值。设只有一个窗口,一位业务人员,要求程序模拟统计在
一天时间内,所有客户的平均等待时间。模拟数据按客户到达的先后顺序依次由键盘输入,对应每位客户有两个数据,到达时刻和需要办理业务的时间。


  输入格式
第一行:一天内的客户总人数n
第二行:第一个客户的到达时刻和需要办理业务的时间
第三行:第二个客户的到达时刻和需要办理业务的时间
……
第n行:第n - 1个客户的到达时刻和需要办理业务的时间
第n + 1行:第n 个客户的到达时刻和需要办理业务的时间

输出格式
第一行:所有客户的平均等待时间(精确到小数点后2位)

输入样例
3
1 3
2 1
3 5

输出样例
1.33

好像有思路的话其实很简单,就用顺序队列就好了,如果不需要等待的话就更新一下hour即可。 

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include //C++
#include 
#include 
using namespace std;
#include
#include
#include
#include
#include
#include

typedef struct people
{
   int daodashijian;
   int banlishijian;
}people;
int main()
{
    int n;
    cin>>n;
    people p[99];
    queuea;
    for(int i=1;i<=n;i++)
    {
        cin>>p[i].daodashijian>>p[i].banlishijian;
        a.push(p[i]);
    }
    int dengdaishijian=0;
    int hour=p[1].daodashijian;
    while(!a.empty())
    {
        hour+=a.front().banlishijian;
        a.pop();
        if(!a.empty())
        {
            if(hour>a.front().daodashijian)
                dengdaishijian+=hour-a.front().daodashijian;
            else
                hour=a.front().daodashijian;
        }
    }
    double pingjun=(double)dengdaishijian/(double)n;
    printf("%.2lf",pingjun);
    return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934327.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号