如何用c语言写谁是凶手?

Python055

如何用c语言写谁是凶手?,第1张

小弟不才,也写了一个程序,没有用到上面说的方法,我也不知道什么的方法怎么搞!!我的思维是完全简单的模拟人的思维过程,算法叫相当的不优秀,不过还是有扩展的空间的,因为只需要改变某些值,就能很好的处理更多条件的情况。我用一数组a来存放每个人说话是真假情况,用1表示真话,0表示假话。再用b表示每个人可能的犯罪情况,用0表示有可能是凶手,用1表示是凶手,用3表示是不是凶手,因为每个b[]只能加一到两次,所以这样的值就够了,考虑b中元素可能的取值,然后在再后面加上相应的判断,判断什么情况合理,考虑所有的能够正确判断凶手的情况就行了,如果加条件的话,只需加if和相应的判断就可。算法的时间复杂性不是很好的。反正还是做出来了啊 !!!!在开始你没有加条件的时候,我是穷举了所有的能正确判断的情况!!

#include <stdio.h>

void main()

{

int a[4]={0},b[4]={0}

int i,j,m=0,n=0,flag

for (i=0i<4i++ )

{

n=0

flag=1

for (j=0j<4j++ )

{ b[j]=0

a[j]=1

}

a[i]=0 //设置说话的真伪情况

if(a[0]==0)

b[0]+=1

else b[0]+=3

if(a[1]==0)

{ b[2]+=3

}

else b[2]+=1

if(a[2]==0)

{ b[3]+=3

}

else b[3]+=1

if(a[3]==0)

{ b[3]+=1

}

else b[3]+=3//具条件的判断过程,得到了每个人的可能的犯罪情况

for (j=0j<4j++ )

{

if(b[j]==1||b[j]==2)

n+=1

if(b[j]==3||b[j]==6) //不知道有没有3个不可能,一个不知道的情况,加上吧,

m+=1

if(b[j]==4) //有4就不行,因为它是1+3 来的,也就是一定是和一定不是的和

{ flag=0

}

}

if((n==1&&flag)||(n==0&&m==3&&flag))//判断什么情况是合理的,打印出来

for (j=0j<4 j++ )

{ printf(" %d",a[j])

}

}

}

//如果是问题规模扩大,就只需要改判断就行了,还是很方便的

可以说有四个: 一是祥林嫂自己。祥林嫂所代表的是饱受封建礼教压迫却无从反抗的弱势妇女群体,她本性中的顺从安分是导致这场悲剧的因素之一。 二是鲁镇的居民。他们是鲁迅笔下看客形象的代表,他们对祥林嫂的悲惨遭遇一直都是冷漠的,最后甚至是嘲讽的态度。祥林嫂从他们身上汲取不到同情,更消磨了她寥寥无几的活下去的信念。 三是“我”。我代表着具有软弱性的新一代知识分子,对于祥林嫂的问题总是支支吾吾不给予明确回答,这也是杀死祥林嫂的“最后一根稻草”。 四是封建礼教,这是最主要的一个“杀手”。是封建礼教导致了以上三个“杀手”的出现。 (个人见解希望对你有帮助~)

/*是凶手输出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)

}

}