#include <stdio.h>

int main() { int A, B, C, D; // 枚举四个人的说法 for(A = 0; A <= 1; A++) { for(B = 0; B <= 1; B++) { for(C = 0; C <= 1; C++) { for(D = 0; D <= 1; D++) { int cnt = A + B + C + D; // 真话人数 if(cnt != 2) continue; // 只有两人说真话 int thief = -1; // 假设罪犯编号为-1 if(A + B + C == 2) thief = D; // A说的是真话 else if(A + B + D == 2) thief = C; // C说的是真话 else if(A + C + D == 2) thief = B; // D说的是真话 else if(B + C + D == 2) thief = A; // B说的是真话 if(thief != -1) { // 找到罪犯 printf("The thief is %c.\n", thief + 'A'); return 0; } } } } } printf("No thief found!\n"); // 没有找到罪犯 return 0; }

逻辑推理:四人供述,谁是罪犯?C语言编程求解

原文地址: https://www.cveoy.top/t/topic/n6zi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录