日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為4個 嫌疑犯的一個。現在請根據這些資訊,寫一個程式來確定到底誰是凶手。
阿新 • • 發佈:2018-12-18
題目:
日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為4個 嫌疑犯的一個。以下為4個嫌疑犯的供詞。 A說:不是我。 B說:是C。 C說:是D。 D說:C在胡說 已知3個人說了真話,1個人說的是假話。 現在請根據這些資訊,寫一個程式來確定到底誰是凶手。
分析:這個題要與“確定比賽名次”(使用列舉法)那道題區分開來。使用列舉法用於-->有多個可能的結果,所以用多重for迴圈進行假設。而對於本題,嫌犯只有一個,可能是A/B/C/D,所以,只用一個for迴圈即可;“3個人說了真話,1個人說的是假話”從這條語句中得出我們要用到邏輯操作符進行判斷。所以不難得出,解答本題的方法就是:一個for迴圈中加一個條件判斷語句
程式碼:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() int main() { char killer; for (char killer = 'A'; killer <= 'D'; killer++) { if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'C') == 3) { printf("killer=%c", killer); } } system("pause"); return 0; }
執行結果: