鱼C论坛

 找回密码
 立即注册
查看: 2352|回复: 2

新手,求助大神!!!

[复制链接]
发表于 2014-3-9 19:10:25 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题是这样的。
民警小张在某个案件中带回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");
}
这题我想破脑袋都搞不明白,请大神指导。下划线的就是要填的内容,万分感谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-9 21:41:47 | 显示全部楼层
代码:
#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-10 13:34:00 | 显示全部楼层
学习了,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 21:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表