中易网

c++编程,一个小组共五人,分别为A,B,C,D,E.现有一项任务,要他们中的3个人去完成。

答案:2  悬赏:50  
解决时间 2021-01-11 20:02
  • 提问者网友:泪痣哥哥
  • 2021-01-11 01:13
c++编程,一个小组共五人,分别为A,B,C,D,E.现有一项任务,要他们中的3个人去完成。
最佳答案
  • 二级知识专家网友:轻雾山林
  • 2021-01-11 02:47
大致简单编程了一下,用1、2、3、4、5分别表示ABCDE;用i、j、k分别表示三重变量进行循环,程序如下(有注释,某些情况自动忽略了:比如A不能出现在第二重第三重循环中......):
#include

int main(){

    printf("此项任务可以由如下三人组合:
");
    for(int i=1;i<=5;i++){
        for(int j=i+1;j<=5;j++){
            for(int k=j+1;k<=5;k++){   //用i-j-k三个变量枚举三个人的组合情况

                if((i==1&&j==3)||(i==1&&k==3))//AC不能都去
                    continue;
                if(i==2&&j==3&&k==4)//BCD不能都去
                    continue;

                int cnt=0;//BC至少需要去一个
                if(i==2||j==2)cnt++;
                if(i==3||j==3||k==3)cnt++;
                if(cnt==0)
                    continue;

                cnt=0;
                if(i==3){//如果i=C,C去了,D、E就只能去一个;
                    if(j==4||k==4)cnt++;
                    if(j==5||k==5)cnt++;
                }
                if(cnt!=1)continue;
                cnt=0;
                if(j==3){//如果j=C,C去了,D、E就必须去一个;
                    if(k==4||k==5)
                        cnt++;
                }
                if(cnt==0)
                    continue;
                if(k==3)//如果k=C,C去了,D、E就只能去一个;
                    continue;

                if(i==2||j==2){//如果B去了,D、E就不能都去。
                    if(j==4||j==5||k==4||k==5)
                        continue;
                }

                printf("%c %c %c
",'A'+i-1,'A'+j-1,'A'+k-1);

            }
        }
    }

    return 0;
}
全部回答
  • 1楼网友:長槍戰八方
  • 2021-01-11 04:13
我暂时保留我的看法!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息