C語言_有趣的邏輯推理問題
阿新 • • 發佈:2018-12-19
一、比賽名次
1.題目 5位運動員參加了10米臺跳水比賽,有人讓他們預測比賽結果 A選手說:B第二,我第三; B選手說:我第二,E第四; C選手說:我第一,D第二; D選手說:C最後,我第三; E選手說:我第四,A第一; 比賽結束後,每位選手都說對了一半。
寫一個C語言程式確定比賽的名次。
2.程式碼如下:
#include <stdio.h> #include <stdlib.h> void guess() { int a = 0, b = 0, c = 0, d = 0, e = 0; for (a = 1; a <= 5; a++) { for (b = 1; b <= 5; b++) { for (c = 1; c <= 5; c++) { for (d = 1; d <= 5; d++) { for (e = 1; e <= 5; e++) { if (((b == 2) + (a == 3) == 1) && ((b == 2) + (e == 4) == 1) && ((c == 1) + (d == 2) == 1) && ((e == 4) + (a == 1) == 1)) { if (a*b*c*d*e == 120) { printf("比賽結果為:\n"); printf("A 第 %d, B 第 %d, C 第 %d, D 第 %d, E 第 %d\n", a, b, c, d, e); } } } } } } } } int main() { guess(); system("pause"); return 0; }
二、確定凶手
1.題目
日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為4個 嫌疑犯的一個。以下為4個嫌疑犯的供詞。 A說:不是我。 B說:是C。 C說:是D。 D說:C在胡說 已知3個人說了真話,1個人說的是假話。 現在根據這些資訊,寫一個C語言程式來確定到底誰是凶手。
2.程式碼如下:
#include <stdio.h> #include <stdlib.h> void killer() { char killer = '0'; for (killer = 'A'; killer <= 'D'; killer++) { if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3) { printf("凶手是:%c\n", killer); break; } } } int main() { killer(); system("pause"); return 0; }