某任务需要在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
人员派遣问题,在线等,求帮助!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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"); } } } } } } }
解决 1无用
悬赏问题
- ¥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地图怎么实现一进来页面散点数据和卡片一起轮播