zoukankan      html  css  js  c++  java
  • 课堂练习—电梯调度

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

    设计思路:假定有10个用户乘坐电梯,在第一层时,每人都摁一下需要到达的楼层数。利用循环语句分别计算出电梯停在1~18层时,用户爬楼梯的层数之和。再求出最小的那一层即可。

    程序代码:

    #include<iostream.h>
    #include<math.h>
    int main()
    {
        int a[10];
        int b[18];
        cout<<"请输入每个人需要停留的层数:"<<endl;
        for (int i=0;i<10;i++)
        {
            cin>>a[i];
        }
        
        for (int j=0;j<18;j++)
        {
            int sum=0;
            for (int k=0;k<10;k++)
            {
                
                if (j-a[k]>=0)
                {
                    sum=sum+j-a[k];
                }
                if (j-a[k]<0)
                {
                    sum=sum+a[k]-j;
                }
            }
            b[j]=sum;
        }
        int min=b[0];
        int Y=0;
        for (int n=1;n<18;n++)
        {
            if (b[n]<min)
            {
                min=b[n];
                Y++;
            }
            
        }
        cout<<endl;
        cout<<"为使所有乘客上下楼层数之和最少,电梯应停留的层数为:"<<Y<<endl;
        return 0;
    }

    程序截图:

    思考总结:在程序做出来之后,编译无错,但是输出结果并不是预期结果。在仔细观察代码后,发现在for循环里面a[k]写成了k。在这种情况下,就要在程序里选定一个数,然后去查看错误所在。

  • 相关阅读:
    MySQL
    php抽象类和接口
    php面向对象三大特征
    php面向对象
    Git
    css3属性
    数据渲染
    ajax(2)
    ajax笔记
    作用域面试题
  • 原文地址:https://www.cnblogs.com/cainiao1hao/p/4437512.html
Copyright © 2011-2022 走看看