电梯调度
实验题目
基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信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; }
实验心得:
这次由于去打比赛了,所以交的有点慢,谢谢老师谅解,不过觉得老师最近还不错,这个作业不是太难,不过作业量好多,心理压力大