4.C语言推理题及continue的使用

本文通过两个具体的案例,展示了如何利用编程解决复杂的逻辑推理问题。首先分析了五名学生可能参加计算机竞赛的情况,并根据一系列条件确定参赛者。其次,对一起涉及六名嫌疑人的案件进行了逻辑分析,找出可能的作案人员。这两个例子不仅展示了逻辑推理的魅力,还突出了编程在解决问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 题目内容:


    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;
                           // printf("a=%d b=%d c=%d d=%d e=%d ",a,b,c,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");
                            }
    
                        }
       
        return 0;
    }


#include <stdio.h>

int main(int argc, const char * argv[]) {
    int x,y,z;
    for(x=1;x<=3;x++){
        for(y=1;y<=3;y++){
            for(z=1;z<=3;z++){
                if (x!=1&&x!=3&&z!=3&&x!=y&&x!=z&&y!=z) {
                    printf("%d %d %d",x,y,z);
                }
            }
        }
    }
    return 0;
}
  • 题目内容:

    某地刑警大队对涉及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 argc, const char * argv[]) {
        int a,b,c,d,e,f;
        for (a=0; a<=1; a++) {
            for (b=0; b<=1; b++) {
                for (c=0;c<=1;c++) {
                    for (d=0; d<=1; d++) {
                        for (e=0; e<=1; e++) {
                            for (f=0; f<=1; f++) {
                                if (a==0&&b==0) continue;
                                if ((a==0&&e==0)||(a==0&&f==0)||(f==0&&e==0))  continue;
                                if (a==1&&d==1)  continue;
                                if (b+c==1)  continue;
                                if ((c+d==0)||(c+d==2))  continue;
                                if (d==0&&e==1)  continue;
                                if (a) {
                                    printf("A");
                                }
                                if (b) {
                                    printf("B");
                                }
                                if (c) {
                                    printf("C");
                                }
                                if (d) {
                                    printf("D");
                                }
                                if (e) {
                                    printf("E");
                                }
                                if (f) {
                                    printf("F");
                                }
    
                            }
                        }
                    }
                }
            }
        }
        return 0;
    }
    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值