• 课堂练习------电梯调度


    题目:
    石家庄铁道大学基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。
    由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。
    问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。
    设计思路:
    要所有乘客爬楼的层数最少,电梯所停的楼层一定在乘客搭乘的最低楼层和最高楼层之间,我们可以将之间的所有楼层的爬楼梯的层数之和算出来,然后进行比较,从而
    从而选出最少的楼层数。
    代码:
     1 #include<iostream.h>
     2 #define MAXSIZE 100
     3 void input(int &num,int people[])
     4 {
     5     cout<<"请输入乘坐电梯的人数(限乘15人):";
     6     cin>>num;
     7     if(num>15)
     8     {
     9         cout<<"输入错误!";
    10     }
    11     cout<<"请输入每个人要去的楼层(最高为18层):";
    12     for(int i=0;i<num;i++)
    13     {
    14         cin>>people[i];
    15         if(people[i]>18)
    16         {
    17             cout<<"输入错误!";
    18         }
    19     }
    20 }
    21 int main()
    22 {
    23     int num,lowest,highest,sum,floor;
    24     int people[MAXSIZE];
    25     input(num,people);
    26     floor=0;
    27     for(int i=0;i<num;i++)
    28     {
    29         floor+=people[i];
    30     }
    31     highest=lowest=people[0];
    32     for(i=0;i<num;i++)
    33     {
    34         if(people[i]>highest)
    35         {
    36             highest=people[i];
    37         }
    38         else
    39         {
    40             lowest=people[i];
    41         }
    42     }
    43     int temp=floor;
    44     for(i=lowest;i<highest;i++)
    45     {
    46         sum=0;
    47         for(int j=0;j<num;j++)
    48         {
    49             if((people[j]-i)<0)
    50             {
    51                 sum=sum+i-people[j];
    52             }
    53             else
    54             {
    55                 sum=sum+people[i]-i;
    56             }
    57         }
    58 
    59         if(sum<temp)
    60         {
    61             floor=i;
    62             temp=sum;
    63         }
    64     }
    65     cout<<"电梯停在"<<floor<<"层爬楼梯总层数最低";
    66     return 0;
    67 }

    截图:

     心得体会:这次的编程确实还是挺有难度的。虽然编程中遇到了不少困难,但在查阅资料之后,还是解决了。程序虽然还有一些问题,但大体上都能够执行出来。
  • 相关阅读:
    【转载】怎样使用ZEMAX导出高质量的图像动画
    shell中的单引号,双引号,反引号
    docker容器以非root用户启动应用
    js操作json的基本方法
    页岩油
    shell中使用ssh
    强一致性 弱一致性 最终一致性
    CSV和excel
    workbook sheetname最大长度
    ipvs了解
  • 原文地址:https://www.cnblogs.com/xuqingtian/p/4439771.html
Copyright © 2020-2023  润新知