1A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些(10分)
题目内容:
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<stdio.h> 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<stdio.h> 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 ; }