问题标题: 酷町堂:2708

0
0
已解决
胡景波
胡景波
中级光能
中级光能

2708   猜数

题目描述 Description

下课了,有两个同学想放松下,于是其中的小山同学想出来一个很好玩的游戏,要小蜀同学猜他带了多少零花钱。

猜的方法是:小蜀同学说一个数,由小山来判断。如果小山认为自己没有那么多钱,会回答“too high”,如果小山认为比这多,则回答“too low”;如果他认为游戏结束时,他会说“right on”,每次游戏结束,由小蜀来判断是不是小山说谎了,如果说谎,则输出“Dishonest”,否则输出“honest”。

输入描述 Input Description

输入若干整数(0<n<=10),每输入一个整数,接下来的一行输入(too high,too low,right on)中的一个。如果是right on,则输入结束。

输出描述 Output Description

输出只有一行,说谎了则输出“Dishonest”,否则输出“honest”。

样例输入 Sample Input

 

10
too high
3
too low
4
too high
2
right on

样例输出 Sample Output

 

Dishonest

 

#include<iostream>
using namespace std;
int n,maxx=-1,minx=10000;
string s;
int main(){

    while(s!="right on"){
        cin>>n;
        getline(cin,s);
        getline(cin,s);
        if(s=="too high"){
            if(maxx<n){
                maxx=n;
            }
        }
        else if(s=="too low"){
            if(minx>n){
                minx=n;
            }
        }
        else if(s=="right on"){
            if(n<maxx&&n>minx){
                cout<<"honest";
            }
            else{
                cout<<"Dishonest";
            }
            break;
        }
    }
    return 0;
}

70分的可怜代码


0
已采纳
崔竣恺
崔竣恺
中级守护
中级守护

首先,定义

int .........

其次,用死循环

while(1){

}

然后输入整数和字符串

接着:

判断s

最后输出

代码:

/*
10
too high
8
too low
9
right on
*/
string s;
整形 high=11,low;
整形 n;
int main(){
    死循环{
        输入(cin)>>n;
        输入字符串并吃掉换行
        如果(s=="right on") break;
        否则 if(s=="too high"){
            high=n;
        }
        否则{
            low=n;
        }
    }
   如果(s=="right on"){
        如果(n>low&&n<high){
          输出<<"honest";
        }
        否则{
           输出<<"Dishonest";
        }
    }

0
我要回答