【C程序】逻辑判断真假话问题:3人说真话,1人说假话

xiaoxiao2021-02-28  33

/* ** 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手为4个嫌疑犯中的一个。4个 ** 嫌疑犯的供词如下: ** A说: 不是我。 ** B说: 是C。 ** C说: 是D。 ** D说: C在胡说。 ** 已知3个人说了真话,1个人说的是假话。根据这些信息,通过程序确定说假话的凶手。 **/ #include <stdio.h> int main(int argc, char *argv[]) { int i = 0; int sum = 0; int flag = 0; char killer; /* 穷举法:假设其中1个凶手说假话,遍历4个人,找到3个真话就停 */ for (i = 0; i < 4; i++) // 0 1 2 3 { killer = 'A' + i; // A B C D sum = (killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D'); // true==1, false==0 /* If the sum value has 3 people who said true, find the killer. */ if (sum == 3) { flag = 1; printf ("%c is the killer!\n", killer); break; } } if (flag == 0) printf ("Can't find the killer.\n"); return 0; }
转载请注明原文地址: https://www.6miu.com/read-250415.html

最新回复(0)