1. 程式人生 > >日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為4個 嫌疑犯的一個。現在請根據這些資訊,寫一個程式來確定到底誰是凶手。

日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為4個 嫌疑犯的一個。現在請根據這些資訊,寫一個程式來確定到底誰是凶手。

題目:

日本某地發生了一件謀殺案,警察通過排查確定殺人凶手必為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;
}

執行結果: