2302_81044401 2023-12-13 20:31 采纳率: 100%
浏览 36
已结题

C语言,一道很有意思的传送带问题,望帮助。

现有一玩具制作车间,一个玩具的正常产出需要经过五个工序,车间一旦启动,不可再中途终止。其中,传送带每次只能运行一个玩具,即需将前一个玩具送达之后才能传送第二个。玩具组装部分可同时组装8个玩具,玩具刷漆部分可同时工作4个玩具。每一类玩具在组装、刷漆部分的历时不尽相同。玩具组装时长50、刷漆时长22,传送带1时长8,传送dai2时长5,传送d3时长5。请问产生180个玩具需要多少时间

  • 写回答

10条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-13 20:31
    关注
    #include <stdio.h>
     
    #define ASSEMBLY_TIME 50
    #define PAINTING_TIME 22
    #define CONVEYOR1_TIME 8
    #define CONVEYOR2_TIME 5
    #define CONVEYOR3_TIME 5
     
    void processProduct(int productNumber, int startTime) {
        int assemblyStartTime = startTime;
        int assemblyEndTime = assemblyStartTime + ASSEMBLY_TIME;
        printf("产品%d在%d秒进入组装部分,在%d秒离开组装部分,", productNumber, assemblyStartTime, assemblyEndTime);
     
        int paintingStartTime = assemblyEndTime;
        int paintingEndTime = paintingStartTime + PAINTING_TIME;
        printf("在%d秒进入刷漆部分,在%d秒离开刷漆部分,", paintingStartTime, paintingEndTime);
    
        int conveyor1StartTime = paintingEndTime;
        int conveyor1EndTime = conveyor1StartTime + CONVEYOR1_TIME;
        printf("在%d进入传送带1,在%d秒离开传送带1,", conveyor1StartTime, conveyor1EndTime);
     
        int conveyor2StartTime = conveyor1EndTime;
        int conveyor2EndTime = conveyor2StartTime + CONVEYOR2_TIME;
        printf("在%d秒进入传送带2,在%d秒离开传送带2,", conveyor2StartTime, conveyor2EndTime);
     
        int conveyor3StartTime = conveyor2EndTime;
        int conveyor3EndTime = conveyor3StartTime + CONVEYOR3_TIME;
        printf("在%d秒进入传送带3,在%d秒离开传送带3\n", conveyor3StartTime, conveyor3EndTime);
    }
     
    int main() {
        int productCount = 180;
     
        int conveyor1Time = 0;
        int conveyor2Time = 0;
        int conveyor3Time = 0;
     
        for (int i = 1; i <= productCount; i++) {
            int startTime = conveyor1Time > conveyor2Time ? conveyor1Time : conveyor2Time;
            startTime = startTime > conveyor3Time ? startTime : conveyor3Time;
     
            processProduct(i, startTime);
     
            conveyor1Time = startTime + CONVEYOR1_TIME;
            conveyor2Time = startTime + CONVEYOR2_TIME;
            conveyor3Time = startTime + CONVEYOR3_TIME;
        }
     
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月13日

悬赏问题

  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?