日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯
的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
思路:
可以首先假设一个人是凶手,然后设定count,说对了count++,如果某种情况,count刚好为3,则假设正确。
#include<stdio.h> void murder_is(char murderer) { int count = 0; if (murderer != 'A') { count++; } if (murderer == 'C') { count++; } if ('D' == murderer) { count++; } if (murderer != 'D') { count++; } if (count == 3) { printf("murderer is %c", murderer); } else { printf("%c不是凶手", murderer); } } int main() { murder_is('B'); getchar(); return 0; }
首先我们假设murder是B,看结果:
再假设murder是A,看结果:
再假设murder是c,看结果: