兇手c语言
❶ 如何用c语言写谁是兇手
小弟不才,也写了一个程序,没有用到上面说的方法,我也不知道什么的方法怎么搞!!我的思维是完全简单的模拟人的思维过程,算法叫相当的不优秀,不过还是有扩展的空间的,因为只需要改变某些值,就能很好的处理更多条件的情况。我用一数组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=0;i<4;i++ )
{
n=0;
flag=1;
for (j=0;j<4;j++ )
{ 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=0;j<4;j++ )
{
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=0;j<4 ;j++ )
{ printf(" %d",a[j]);
}
}
}
//如果是问题规模扩大,就只需要改判断就行了,还是很方便的
❷ C语言实现之谁是兇手,杀死比尔5
可以说有四个: 一是祥林嫂自己。祥林嫂所代表的是饱受封建礼教压迫却无从反抗的弱势妇女群体,她本性中的顺从安分是导致这场悲剧的因素之一。 二是鲁镇的居民。他们是鲁迅笔下看客形象的代表,他们对祥林嫂的悲惨遭遇一直都是冷漠的,最后甚至是嘲讽的态度。祥林嫂从他们身上汲取不到同情,更消磨了她寥寥无几的活下去的信念。 三是“我”。我代表着具有软弱性的新一代知识分子,对于祥林嫂的问题总是支支吾吾不给予明确回答,这也是杀死祥林嫂的“最后一根稻草”。 四是封建礼教,这是最主要的一个“杀手”。是封建礼教导致了以上三个“杀手”的出现。 (个人见解希望对你有帮助~)
❸ 谁是兇手,A说不是我,B说是C,C说是D,D说他胡说,且四人有一个说了假话,谁是真兇 用c语言解决
是C
首先D说C胡说,那就只有C和D其中一人说假话
而B又说是C,且四人有一个说了假话,那B一定是说真话的
所以是C
❹ c语言某地发生一起持枪杀人案,重案组经过侦查,锁定6名嫌疑人(A,B,C,D,E,F),在刑侦分析
/*是兇手输出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=0;x1<=1;x1++)
for(x2=0;x2<=1;x2++)
for(x3=0;x3<=1;x3++)
for(x4=0;x4<=1;x4++)
for(x5=0;x5<=1;x5++)
for(x6=0;x6<=1;x6++)
{
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);
}
}