各位高手請多多指教,問用C語言求解推理題的問題

2021-09-13 06:10:17 字數 1974 閱讀 2865

1樓:匿名使用者

最簡單的解法,把這個當做排列組合問題。然後把所有的排列組合結果帶入到1-6這6個條件中進行檢驗。最後把滿足所有條件的組合結果輸出即可。

把四人姓的**儲存在a[3]中 (用**方便運算並節約空間,值全用int,按格蘭德、白思特、弗羅斯特和達特順序為0-3)

四人名的**儲存在b[3]中 (莎莉=0,羅達=1,特雷西=2,萬達=3)

樹苗種類**儲存在c[3]中 (楓樹=0,灰樹=1,櫻桃=2,雲杉=3)

同理,院子位置**d[3], (花園=0,院子前=1,院子後=2,天井=3)

種樹日子e[3] (星期一=0,星期三=1,星期四=2,星期五=3)

排列組合**自行解決下,假設每次生成結果用x陣列儲存,x[0]代**蘭德,x[1]代表白思特……,x陣列的每個元素結構如下:

struct choice;

自己寫個函式int find(x,arg1,arg2,arg3)

x為陣列指標

arg1為指定已知條件,arg3為指定已知條件的值,arg2為指定返回條件,返回值為arg2指定的返回項。

arg1和arg2的值為0、1、2、3,4分別代表姓、名、樹苗種類、位置、日期五個屬性。

舉例來說, s = find(x,2,3,2);這句話的含義就是找到x陣列裡樹苗種類為櫻桃的那條記錄,返回它的栽種位置,返回值寫入s中。

然後編寫6條件判斷:

1.姓弗羅斯特的人星期一種樹;把樹苗重在院子花園裡的人是星期三種樹;萬達星期四種樹;種楓樹的人星期五種樹。

(x[2].d == e[0])&&(find(x,3,4,0) == e[1]) &&(find(x,1,4,3) == e[2]) && (find(x,2,4,0) == e[3] )

2.特雷西在姓達特的人之前種樹,在種灰樹的那個人之後種樹。

int temp = find(x,1,4,2)

(temp < find(x,0,4,3) )&&(temp > find(x,2,4,1))

3.姓白思特的那個人把自己的樹重在了院子前面,她並不叫莎莉,也沒有在星期五種樹。

(find(x,0,1,1) != b[0] ) && ( find(x,0,4,1) != e[3])

4.羅達並沒有在星期一種樹。

find(x,1,4,1) != e[0]

5.姓格蘭德的人種樹的時間比把樹重在院子後面的人要早;羅達並沒有種櫻桃樹。

(find(x,0,4,0) < find(x,3,4,2))&&( find(x,1,2,1) != c[2])

6、萬達並不姓弗羅斯特,沒有把她的雲杉樹種到天井裡。

(find(x,1,0,3) != a[2])&&(find(x,1,2,3) == c[3])&&(find(x,1,3,3) != d[3])

當然這裡還可以簡化一下,讓萬達和雲杉這兩個元素繫結起來。或者改進下資料結構比如用連結串列代替陣列,如果題目擴充也能稍做調整就可以完成運算。不過大致的思路就是這樣了。

有不懂的地方再交流。

2樓:匿名使用者

甲乙丙丁4人中有一人為長沙人,已知有一人撒謊。

甲:我不是長沙人

乙:丙是長沙人

丙:丁是長沙人

丁:丙說謊

解法思路:採用窮舉法,依次設甲乙丙丁為長沙人,找到關係式,由於有一人撒謊,所以4個等式相加為3(1為真)即可

main()}}

3樓:蔡庚

這種題可以不用程式設計,有更好的方法.

先想想出題人會怎樣出題,他不太可能把它們的邏輯關係在腦子裡記得那麼清楚.

我猜他是用**他們的邏輯關係表示出來.然後再給我們列出條件.

所以,你也可以辦他們列成**,先隨便列出第一行,類如先列出四個人的姓名.

a,b,c,d

再根據給出的條件對應給下面新增他們的邏輯關係,就可以很快搞定了.

絕對原創.

本人幾年前就用此法做出一道比樓主的問題更復雜的問題.

小生有禮,請多多指教下聯,上聯 酒 醉過 斷腸苦 始知酒濃

心,已殘,最相思,才懂心碎。夢,已凋,空寂寞,甚懂夢涼 生,活來,懷尊優,怎畏生難 死,參來,焚骨髓,怎畏死寒。和你上聯一樣,我下聯也有雙重意思,生 養尊處優的人不知道生活的困難 懷有尊敬事物和好素質的人不畏懼生活的困難。死 罪孽深重的人不知道死是一件悲傷的事,鍛鍊心骨的人不畏懼死是一件悲傷的事。愛...

你風塵僕僕對我笑餘生請多多指教這句話什麼意思啊

風塵 指行旅,含有辛苦之意 僕僕 行路勞累的樣子。風塵僕僕 形容旅途奔回波,忙碌勞累答。請多多指教 用於能力比自己好的人時,是希望對方能給自己不足之處點撥一下,讓自己進步 而用於剛剛認識又很不瞭解的人時,則帶有謙虛之意,方便日後的相處能和諧點。對所愛的人說的,就是餘生。意思是經歷瞭如此多磨礪你還是對...

你更期待肖戰楊紫的《餘生請多多指教》,還是王一博趙麗穎的《有翡》

楊紫和肖戰的 餘生請多多指教 我還是非常期待的,楊紫演技很好,肖戰長得很帥。兩個都很期待,這個並不衝突吧,兩個人在娛樂圈裡的口碑都很好,又有演技,期待啊!我對這兩部劇都是非常期待的,因為裡面的四個演員都是我非常喜歡的。我覺得我兩部劇都期待,但是更期待的應該是蕭戰和楊紫的 餘生請多指教 當時看 的時候...