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,...