• C语言:逻辑推理


    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 ;  
    }  
    

      

      

      

  • 相关阅读:
    devpress 的gridview 控件的行拖拽 z
    JAVA常见算法题(八)
    JAVA常见算法题(七)
    JAVA常见算法题(六)
    JAVA常见算法题(五)
    JAVA常见算法题(四)
    JAVA常见算法题(三)
    JAVA常见算法题(二)
    JAVA常见算法题(一)
    SpringBoot 框架整合webservice
  • 原文地址:https://www.cnblogs.com/songqingbo/p/8934468.html
Copyright © 2020-2023  润新知