Lntano858 2021-10-10 16:12 采纳率: 0%
浏览 159

人员派遣问题,在线等,求帮助!

某任务需要在A,B,C,D,E五人中物色人员去完成,但派人受限于下列条件:
1.若A去,则B去
2.D,E两人中必有人去
3.B,C中必有一人去,但只能去一人
4.C,D两个要么都去,要么都不去
5.若E去,则A,B去
问有几种派遣方式?用C语言编程来回答这个问题
输入格式:无
输出格式:以A,B,C,D,E代表没人,输出满足问题要求的所有派遣组合,每行一个派遣。
例:1 : C D
2 : A B E

  • 写回答

2条回答 默认 最新

  • crtty 2023-10-29 00:55
    关注

    解答如下:

    #include<stdio.h>
    int main()
    {
        int arr[5] = { 0 };
        int a,b,c,d,e,x=1;
        for (a= 0; a < 2; a++)
        {
            arr[4] = a;
            for (b = 0; b < 2; b++)
            {
                arr[3] = b;
                for (c = 0; c< 2; c++)
                {
                    arr[2] = c;
                    for (d= 0; d< 2; d++)
                    {
                        arr[1] = d;
                        for (e = 0; e < 2; e++)
                        {
                            arr[0] = e;
                            //这边使用了多个嵌套for循环来罗列每一个人去不去的情况
                            int flag = 0;
    
                            //条件1
                            if ((arr[0] == 1 && arr[1] == 1)||(arr[0]==0))
                            {
                                flag++;
                            }
                            //条件2
                            if (arr[3] == 1 || arr[4] == 1)
                            {
                                flag++;
                            }
                            //条件3
                            if ((arr[1] == 1 && arr[2] == 0 )|| (arr[2] == 1 && arr[1] == 0 ))
                            {
                                flag++;
                            }
                            //条件4
                            if ((arr[2] == 1 && arr[3] == 1 )|| (arr[2] == 0 && arr[3] == 0))
                            {
                                flag++;
                            }
                            //条件5
                            if (arr[4] == 1 )
                            {
                                if(arr[0] == 1&& arr[1] == 1){
                                    flag++;
                                }
                            }else flag++;
                            if (flag == 5)//满足以上全部条件
                            {
                                printf("%d :",x);
                                x=x+1;
                                for (int i = 0; i < 5; i++)
                                {
                                    if (arr[i] == 1)
                                    {
                                        if (i == 0)
                                            printf(" A");
                                    }
                                    if (arr[i] == 1)
                                    {
                                        if (i == 1)
                                            printf(" B");
                                    }
                                    if (arr[i] == 1)
                                    {
                                        if (i == 2)
                                            printf(" C");
                                    }
                                    if (arr[i] == 1)
                                    {
                                        if (i == 3)
                                            printf(" D");
                                    }
                                    if (arr[i] == 1)
                                    {
                                        if (i == 4)
                                            printf(" E");
                                    }
                                }printf("\n");
                            }
                        }
                    }
                }
            }
        }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月10日

悬赏问题

  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播