新手,求助大神!!!
问题是这样的。民警小张在某个案件中带回4个嫌疑人A,B,C,D,其中有一位是小偷,现在小张分别对4
个嫌疑人进行询问:
A 说:我不是罪犯;
B 说:C是罪犯
C 说:D是罪犯
D 说:我不是罪犯而且B也不是罪犯。
已知其中3 人说的是真话,1人说的是假话,请根据以上信息帮助小张找出罪犯。
#include "stdio.h"
#include "stdlib.h"
main()
{int i;
char who='A';
int isFound=0;
for(i=0;______;i++)
{ int sum=0;
who=_______;
if(who!='A') sum++;
if(who=='C') sum++;
if(who=='D') sum++;
if(_______) sum++;
if(_______)
printf("罪犯是 %c",who);
isFound=1;
}
if(!isFound)
printf("no");
}
这题我想破脑袋都搞不明白,请大神指导。下划线的就是要填的内容,万分感谢。 代码:#include<stdio.h>
#include<stdlib.h>
/*
A 说:我不是罪犯
B 说:C是罪犯
C 说:D是罪犯
D 说:我不是罪犯而且B也不是罪犯
*/
int main()
{
int i;
char who='A';
int isFound=0;
for( i = 0 ; i < 4 ; i++ ) //这个不用说吧
{
//其实每个if就是一个人的描述,然后假设凶手是谁来走一遍,如果某个人描述是对的,
//那么sum+1,如果走完一遍有且仅有三个人的描述成立,那么另外一个人是说谎,这个时候who就是凶手
//结合上面的思路看代码,懂了?
int sum=0;
who = 'A' + i;
if( who != 'A' )
sum++;
if( who == 'C' )
sum++;
if( who == 'D' )
sum++;
if( who != 'D' && who != 'B' )
sum++;
if( sum == 3 )
{
printf("罪犯是 %c",who);
isFound=1;
}
}
if(!isFound)
printf("no");
return 0;
} 学习了,,,,
页:
[1]