如题:
某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
1)A和B两人中至少去一人;
2)A和D不能一起去;
3)A、E和F三人中要派两人去;
4)B和C都去或都不去;
5)C和D两人中去一个;
6)若D不去,则E也不去。
问应当让哪几个人去?
#include<stdio.h>
int main()
{
int a,b,c,d,e,f,g,a1,b1,c1,d1,e1,f1,max=0;
for(a=0;a<=1;a++)
{
for(b=0;b<=1;b++)
{
for(c=0;c<=1;c++)
{
for(d=0;d<=1;d++)
{
for(e=0;e<=1;e++)
{
for(f=0;f<=1;f++)
{
if(a+b>=1&&a+d<2&&a+e+f==2&&(b+c==2||b+c==0)&&c+d==1&&(d==0&&e==0||d==1))
{
if(a+b+c+d+e+f>max)
{
max=a+b+c+d+e+f;
a1=a;
b1=b;
c1=c;
d1=d;
e1=e;
f1=f;
}
}
}
}
}
}
}
}
if(a1>0)printf("A,");
if(b1>0)printf("B,");
if(c1>0)printf("C,");
if(d1>0)printf("D,");
if(e1>0)printf("E,");
if(f1>0)printf("F,");
return 0;
}
一开始倒数几行我是用else if 的,但发现只能输出A,于是将else去掉就好了,else if 与if 的区别在于前者是不属于第一个if的情况,而后者没有这个限制,因此else if和if不能随意相互替换