pascal程式設計 誰做了好事?有ABCD四位學生,其中一位做

時間 2021-06-12 06:43:52

1樓:

a,b,c,d:boolean;

a=1; b=0; c=0; d=0; //如果是a

if ((not (not a))and(c)and(d)and(not d))or ((not a)and(not c)and(d)and(not d))or

((not a)and(c)and(not d)and(not d))or((not a)and(not c)and(d)and(not (not d)))

then writeln('a');

a=0; b=1; c=0; d=0;//如果是b

if ((not (not a))and(c)and(d)and(not d))or ((not a)and(not c)and(d)and(not d))or

((not a)and(c)and(not d)and(not d))or((not a)and(not c)and(d)and(not (not d)))

then writeln('a'); //和上面一樣,可以放到函式裡面

a=0; b=0; c=1; d=0;

...a=0; b=0; c=0; d=1;

...這是我的想法,太久沒寫pascal,不太標準

2樓:善良的茹毛飲血

選c 就是c

看看是誰做的好事 c語言!!!!!!

3樓:匿名使用者

做了好事不留名,意思就是有一個人說了謊話,因此分四種情況,以abcd分別說了謊為四個條件來算,最後輸出滿足的結果。正確程式如下:

#include

void main()

}供參考:)

4樓:

編這個還真不會...不過,按邏輯推理的話

4個同學的話中你看d,他說“有一個人說的不對”從這裡開始推理....

我就直接告訴你答案自己推,

a不是我,是對的

b是c,是對的

c是d,是錯的

所以d說c是錯的。ok

5樓:

c 語言中程式設計出來就是c 這個答案。

不用c 程式設計就不知道了。

因為在c 語言程式設計中。你首先定義的a,b,c ,d。 a 說不是。

就一定不是了(程式中你得用這句話做判定,來排除a )。只有 c,d有可能(b沒人說,所以沒他的份)。然後c說的d 。

d說c不對,就只有c 了。

程式設計就算了吧。我討厭程式設計。

根據上面的思路,自己搞定吧。不難,學了點c 的都行。

6樓:匿名使用者

#include

int logic(int a, int n);

int main()

printf("%c\n", 'a'+ans);

}int logic(int assert, int n)else

}/* 驗證 */

while (res)

if (check == 1)

break;

}if (i != n)

return ans;

else

return -1;

} 思路是這樣的他們中間有且只有一個人在說謊, 把這個說謊的人說的話取反, 和另外三個人的話取交集, 會得到唯一的一個做好事的人. 程式分別假設這四個人中一個人說謊, 其他人說實話,

求三個真話和一個取反的謊話(=真話)的交res, 然後判斷res中是否只包含一個人(有幾位是1), 就得到了結果 。

7樓:雙月夜雪

#include

int main()

;int b[4]=;

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

a[i]=0;

}getchar();}

pascal程式 選數,pascal程式設計 數字遊戲

型別 搜尋 題解 本題動態規劃無從下手,也無數學公式可尋,看來只能搜尋 組合的生成演算法 其實1 n 20這個約束條件也暗示我們本題搜尋是有希望的,組合的生成可用簡單的dfs來實現,既搜尋這k個整數在原數列中的位置,由於組合不同於排列,與這k個數的排列順序無關,所以我們可以令a i 1 是否為素數最...

pascal程式設計題高手來高分 追加

凱爾特 第一題 vary,m,d integer y0,m0,d0 integer s,i,p,q integer function year n integer integer begin if n mod 4 0 and n mod 100 0 then year 366 else year 3...

pascal程式設計問題,求大師解答給最簡潔的程式

既然1已經用來表示障礙,那就用 1表示有1種方案,2表示有2種方案,var a array 0.100,0.100 of integer n,m,i,j integer begin read m,n for i 1 to m do for j 1 to n do read a i,j if a 1,...