main()
{
int a,b,c,d/*四个人,0表示未犯罪,1表示犯罪*/
for(a=0a<2a++)
for(b=0b<2b++)
for(c=0c<2c++)
for(d=0d<2d++)
{
if((a+b>0)&&(b+c>0)&&(c+d>0)&&(c+a<2))
{
if(a)
printf("A作案,")
else
printf("A未作案,")
if(b)
printf("B作案,")
else
printf("B未作案,")
if(c)
printf("C作案,")
else
printf("C未作案,")
if(d)
printf("D作案\n")
else
printf("D未作案\n")
}
}
getch()
}
穷举法,程序可正常运行。
/*是凶手输出1,不是输出2*/#include<stdio.h>
void main()
{
int x1,x2,x3,x4,x5,x6,s1,s2,s3,s4,s5,s6
printf("A B C D E F\n")
for(x1=0x1<=1x1++)
for(x2=0x2<=1x2++)
for(x3=0x3<=1x3++)
for(x4=0x4<=1x4++)
for(x5=0x5<=1x5++)
for(x6=0x6<=1x6++)
{
s1=x1==1||x2==1
s2=x1==1&&x5==1||x1==1&&x6==1||x5==1&&x6==1
s3=!(x1==1&&x4==1)
s4=x2==1&&x3==1||x2==0&&x3==0
s5=x3==1&&x4==0||x3==0&&x4==1
s6=x4==1||x4==0&&x5==0
if(s1&&s2&&s3&&s4&&s5&&s6)
printf("%d %d %d %d %d %d\n",x1,x2,x3,x4,x5,x6)
}
}