电梯调度

实验题目

基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。 由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。 问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。

实验思想

将乘客要去的楼层放在一个数组里,然后找出数组的最大值和最小值,确定范围,然后依次取值,算出数组值分别与值之差,加起来,求出和最小的数,即可。

实验代码

#include "stdafx.h"
#include "iostream"
using namespace std;
#include "math.h"

 int main()
 {
     int n;//上电梯的人数
     int people[20];
     int sum[20];//计算所走的楼层数
     cout<<"请输入乘楼梯人数:"<<endl;
     cin>>n;
     for(int i=0;i<n;i++)
     {
         cout<<"请输入要到的楼层:"<<endl;
         cin>>people[i];
     }
     for(int i=0;i<18;i++)
     {
         int s=0;
         for(int j=0;j<n;j++)
         {
             int b=
             s=s+abs(people[j]-(i+1));
         }
         sum[i]=s;
     }
     int a=0;
     int max=sum[0];
     for(int i=0;i<18;i++)
     {
         if(sum[i]<sum[0])
         {
             sum[0]=sum[i];
             a=i+1;
         }
     }
     cout<<"电梯应停留的层数为:"<<a<<endl;
     return 0;
 }

实验心得:
这次由于去打比赛了,所以交的有点慢,谢谢老师谅解,不过觉得老师最近还不错,这个作业不是太难,不过作业量好多,心理压力大

原文地址:https://www.cnblogs.com/wantong/p/4440578.html