/*题目描述:警察局抓了甲、乙、丙、丁四个偷窃嫌疑犯,其中有一人是小偷,审问中: 甲说:"我不是小偷。" 乙说:"丙是小偷。" 丙说:"小偷肯定是丁。" 丁说:"丙冤枉人!" 现在已经知道四人中三人说的是真话,一人说的是假话,并且他们中有且仅有一名小偷,请你写个程序帮助破案!*/ #include <stdio.h> char findThief() { char thief; int sign; //'a','b','c','d'分别表示甲乙丙丁。 //thief != 'a'; //thief == 'c'; //thief == 'd'; //thief != 'd'; for(thief = 'a'; thief <= 'd'; thief ++) { //该关系式是关键所在。懂得抽象,顺着逻辑分析。 sign = ((thief != 'a') + (thief == 'c') + (thief == 'd') + (thief != 'd')); if(sign == 3) return thief; } } void main() { char result = findThief(); printf("小偷是:%c/n", result); }