c语言编程找出作案人,C语言:逻辑推理(示例代码)

题目内容:

A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些

人参加了竞赛:

(1)A参加时,B也参加;

(2)B和C只有一个人参加;

(3)C和D或者都参加,或者都不参加;

(4)D和E中至少有一个人参加;

(5)如果E参加,那么A和D也都参加。

输入格式:

输出格式:

大写字母表示参加的人,中间无空格。

比如最终结果是A和D参加了,则输出

AD

编码:

#include

int main(){

int A,B,C,D,E;

for (A=0; A<2; A++)

for(B=0; B<2; B++)

for(C=0; C<2; C++)

for(D=0; D<2; D++)

for(E=0; E<2; E++)

{

if(A && !B) continue;

if((B && C) || (!B && !C)) continue;

if(( C && !D) || (!C && D)) continue;

if (!D && !E) continue;

if (E && (!A || !D)) continue;

if(A==1)

printf("A");

if(B==1)

printf("B");

if(C==1)

printf("C");

if(D==1)

printf("D");

if(E==1)

printf("E");

}

return 0;

}

2、某地刑警大队对涉及6个嫌疑人的一桩疑案进行分析:(10分)

题目内容:

某地刑警大队对涉及6个嫌疑人的一桩疑案进行分析:

⑴ A、B至少有1人作案;

⑵ A、E、F ,3人中至少有2人参与作案;

⑶ A、D不可能是同案犯;

⑷ B、C或同时作案,或都与本案无关;

⑸ C、D中有且仅有一人作案;

⑹ 如果D没有参与作案,则E也不可能参与作案。

编程找出作案人。

输入格式:

输出格式:

大写字母表示参加的人,中间无空格。

比如最终结果是A和D参加了,则输出

AD

编码:

#include

int main()

{

int A, B, C, D, E, F ;//定义A到E六个变量,作案等于1,否则等于0

for(A = 0 ; A < 2 ; A ++)

for(B = 0 ; B < 2 ; B ++)

for(C = 0 ; C < 2 ; C++)

for(D = 0 ; D < 2 ; D++)

for(E = 0 ; E < 2 ; E++)

for(F = 0 ; F < 2 ; F++)

{

if(6 ==

( A || B ) //A、B 至少有一人作案

+( !(A && D) ) //A、D 不可能是同案犯

+( (A && E) || (A && F) || (E && F) ) //A、E、F 三人中至少有两人参与作案

+( (B && C) || (!B && !C) ) //B、C 或同时作案,或与本案无关

+( (C && !D) || (D && !C) ) //C、D 中有且仅有一人作案

+( D||(!E)) )//如果 D 没有参与作案,则 E 也不可能参与作案。

{

if(A==1)

printf("A");

if(B==1)

printf("B");

if(C==1)

printf("C");

if(D==1)

printf("D");

if(E==1)

printf("E");

if(F==1)

printf("F");

}

}

return 0 ;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值