其他分享
首页 > 其他分享> > 凶手

凶手

作者:互联网

凶手

【题目描述】

巴斯维克命案抓住了六个嫌疑犯,他们的口供如下:

A:我不是罪犯

B:A、C中有一个是罪犯

C:A和B说了假话

D:C和F说了假话

E:其他五个人中,只有A和D说了真话

F:我是罪犯

他们中只有一半说了真话,凶手只有一个。

本题答案不唯一,请编程找出所有可能的凶手。

【输入描述】

【输出描述】

将所有答案依字母顺序输出。每行表示为一个答案。

【样例输入】

【样例输出】

A

D

E

【注释】

样例解释:当假设唯一的凶手是A或者D或者E时的输出。输出结果为三行,按字母顺序依次输出。

注意:输出样例仅示意输出格式,非正确答案。

本题意在锻炼编程能力,请同学使用程序算出答案,而不要手

#include <iostream>
#include <iomanip> // 注意加上这一行
#include <cmath>
using namespace std;

int main() {
    //0 good man 1 bad man
    int aa=1;
    int bb=0;
    int cc=0;
    int dd=0;
    int ee=0;
    int ff=0;
    bool f;
    bool a= (aa!=1);
    bool b=(aa==1 && cc==1);
    bool c=(a==false && b==false);
    bool d=(c==false && f ==false);
    bool e=(a==true && b==false && c==false && d == true && f == false );
    f = (ff==1);
    string bad_man="";

    int num_of_truth=0;
    num_of_truth=a+b+c+d+e+f;
    if(num_of_truth==3)
    {
        cout<<"A"<<endl;
    }

     aa=0;
     bb=1;
     cc=0;
     dd=0;
     ee=0;
     ff=0;


     a= (aa!=1);
     b=(aa==1 && cc==1);
     c=(a==false && b==false);
     d=(c==false && f ==false);
     e=(a==true && b==false && c==false && d == true && f == false );
     f = (ff==1);

    num_of_truth=0;
    num_of_truth=a+b+c+d+e+f;
    if(num_of_truth==3)
    {
        cout<<"B"<<endl;
    }


    aa=0;
    bb=0;
    cc=1;
    dd=0;
    ee=0;
    ff=0;


    a= (aa!=1);
    b=(aa==1 && cc==1);
    c=(a==false && b==false);
    d=(c==false && f ==false);
    e=(a==true && b==false && c==false && d == true && f == false );
    f = (ff==1);

    num_of_truth=0;
    num_of_truth=a+b+c+d+e+f;
    if(num_of_truth==3)
    {
        cout<<"C"<<endl;
    }



    aa=0;
    bb=0;
    cc=0;
    dd=1;
    ee=0;
    ff=0;


    a= (aa!=1);
    b=(aa==1 && cc==1);
    c=(a==false && b==false);
    d=(c==false && f ==false);
    e=(a==true && b==false && c==false && d == true && f == false );
    f = (ff==1);

    num_of_truth=0;
    num_of_truth=a+b+c+d+e+f;
    if(num_of_truth==3)
    {
        cout<<"D"<<endl;
    }



    aa=0;
    bb=0;
    cc=0;
    dd=0;
    ee=1;
    ff=0;


    a= (aa!=1);
    b=(aa==1 && cc==1);
    c=(a==false && b==false);
    d=(c==false && f ==false);
    e=(a==true && b==false && c==false && d == true && f == false );
    f = (ff==1);

    num_of_truth=0;
    num_of_truth=a+b+c+d+e+f;
    if(num_of_truth==3)
    {
        cout<<"E"<<endl;
    }



    aa=0;
    bb=0;
    cc=0;
    dd=0;
    ee=0;
    ff=1;


    a= (aa!=1);
    b=(aa==1 && cc==1);
    c=(a==false && b==false);
    d=(c==false && f ==false);
    e=(a==true && b==false && c==false && d == true && f == false );
    f = (ff==1);

    num_of_truth=0;
    num_of_truth=a+b+c+d+e+f;
    if(num_of_truth==3)
    {
        cout<<"F"<<endl;
    }




    return 0;
}

标签:输出,false,cout,int,凶手,bool,&&
来源: https://blog.csdn.net/Dequn_Teng_CSDN/article/details/112716665