3-2

来源:互联网 发布:js json数据格式转换 编辑:程序博客网 时间:2024/05/05 03:41

3-2

 
(1/1 分数)
题目描述

P3.2 四个人比饭量小,每人说了一句话。

A说:不是我。

B说:是C。

C说:是D。

D说:他胡说。

已知这四个人只有1人说了真话。请你编程找出谁是饭量最小的人,输出相应的大写字母。


输入描述 输出描述

只输出大写字母

样例输入

样例输出

B
代码框
#include<iostream>using namespace std;int main(){for(char eating_less_man='A';eating_less_man<='D';eating_less_man++){int count=0;    if(eating_less_man!='A')    count++;    if(eating_less_man=='C')    count++;    if(eating_less_man=='D')    count++;    if(eating_less_man!='D')    count++;    if(count==1){    cout<<eating_less_man<<endl;     break;    }}return 0;}

封装起来
#include <iostream>using namespace std;class Student{char _theMan;bool _isEqual;public:Student(bool isEqual,char theMan):_isEqual(isEqual),_theMan(theMan){}bool operator()(char thisMan);};bool Student::operator()(char thisMan){return _isEqual?(thisMan==_theMan):(thisMan!=_theMan);}char solve(int number,int correct,Student*students);int main(){Student student[]={Student(false,'A'),                   Student(true,'C'),   Student(true,'D'),   Student(false,'D')};char theMan=solve(4,1,student);//4个同学,3句真话 if(theMan!='\0'){cout<<"It is "<<theMan<<endl;}else{cout<<"Noooooooop!"<<endl;}return 0;}char solve(int number,int correct,Student*students){for(int i=0;i<number;i++){char thisMan='A'+i;int count=0;    for(int j=0;j<number;j++)    count+=students[j](thisMan);    if(count==correct)    return thisMan;}    return '\0';}



0 0