//第一次尝试:
#include<stdio.h> #include<stdlib.h> //A说:不是我 //B说:是C //C说:是D //D说:C在胡说 void isMurderer() { //每个人都默认为好人 int arr[4] = { 0 }; int i = 0; for (i = 0; i < 4; i++) { //假设第i+1个为凶手 arr[i] = 1; if ((arr[0] != 1) + (arr[2] == 1) + (arr[3] == 1) + (arr[3] != 1) == 3) { break; } //如果是好人,就恢复 else { arr[i] = 0; } } printf("凶手是:%d\n", i+1); } int main() { isMurderer(); return 0; }
//这样的题是第一次做,一开始没什么头绪
//后来查了一些网上的题解,才明白
//做这种题,就是将所有的可能都列出,然后再把不对的带进去试,那个满足前面的假设,那就是答案