兇手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);
}
}