寒假作业3

寒假作业3

GitHub仓库地址:Destr

电梯问题

这次emmm还是写了一个简化版的电梯,在上一次的电梯基础上改动,增加了题目要求的到达层数

代码行数bug数花费时间
11853h

关于Git的学习使用

经过一番仔细的研究,发现Git的使用确实有很多需要注意的地方,要认真研究每一个步骤

使用git提交显示成功,但在仓库中却没有发现自己上传的文件emmm,所以先将代码粘贴如下

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int ans,fx,dc,num_p,t;
   struct p
    {
    int time;
    int floor;
        int direction;
        p()
    {
        memset(this,0,sizeof(p));
    }
}people[10];//记录各个请求
struct f
{
    int time;
    int m;
    int d;
    int num;
    f()
    {
        memset(this,0,sizeof(f));
    } 
}e[15];//电梯状况
void up()
{

    if(e[dc].time<=ans&&e[dc].m>0&&((e[dc].d-dc>0&&fx==1)||(e[dc].d-dc<0&&fx==-1&&num_p==0)))
    {
        cout<<ans<<"时,停靠在"<<dc<<"层"<<endl;
        if(num_p==0)
        {
            fx=0-fx;
        }
        e[e[dc].d].num++;
        ans++;
        num_p+=e[dc].m;
        e[dc].m=0;
        e[dc].time=0;
        e[dc].d=0;
    
        if(e[dc].num!=0)
        {
            t+=e[dc].num;
            num_p-=e[dc].num;
            e[dc].num=0;
        }
    }
    ans++;
    dc++;
}//上行处理
void down()
{

    if(e[dc].time<=ans&&e[dc].m>0&&((e[dc].d-dc>0&&fx==1&&num_p==0)||(e[dc].d-dc<0&&fx==-1)))
    {
        cout<<ans<<"时,停靠在"<<dc<<"层"<<endl;
        if(num_p==0)
        {
            fx=0-fx;
        }
        e[e[dc].d].num++;
        ans++;
        num_p+=e[dc].m;
        e[dc].m=0;
        e[dc].time=0;
        e[dc].d=0;
        
        if(e[dc].num!=0)
        {
            t+=e[dc].num;
            num_p-=e[dc].num;
            e[dc].num=0;
            ans++;
        }
    }
    ans++;
    dc--;
}//下行处理
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout); 
    int i,j;
    for(i=0;i<5;i++)
    {
        cin>>people[i].time>>people[i].floor>>people[i].direction;
        e[people[i].floor].time=people[i].time;
        e[people[i].floor].m=1;
        e[people[i].floor].d=people[i].direction;
    }
    t=0;//完成人数
    ans=0;//总体用时
    fx=1;//电梯方向
    dc=1;//电梯当前所在层数
    t=0;
    num_p=0;//当前电梯内部人数
    while(1)
    {
    
        if(e[dc].num!=0)
        {
            cout<<ans<<"时,停靠在"<<dc<<"层"<<endl;
            t+=e[dc].num;
            num_p-=e[dc].num;
            e[dc].num=0;
            ans++;
        }//到达目的地的人出电梯
        if(t>=5)break;
    
        if(dc==10)fx=-1;
        else if(dc==1)fx=1;
    
        if(fx==1)
        {
            up();
            continue;
        }
        else if(fx==-1)
        {
            down();
            continue;
        }
    }
    cout<<"总体用时:"<<ans<<endl;
    return 0;
}

提交日志截图

1330790-20180222212615633-117584962.png

1330790-20180222211034231-908392653.png

关于文件读写

文件读写输入输出还是不太会,于是选用了简单的freopen。。

转载于:https://www.cnblogs.com/Destr/p/8459994.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值