Description
计算机随机产生一个数A,大于等于1小于等于100,让你猜A是多少,屏幕提示为:
I have a number between 1 and 100.
Can you guess my number?
Please type your guess!
接下来要用cin语句通过键盘输入猜的数B1,计算机将A与B1对照之后给出是相等、不相等、大了还是小了的信息,这些信息为:
Good! You guessed the number.
Too low. Try again please!
Too high. Try again please!
根据这个信息,不断地用cin语句通过键盘输入第2次猜的数B2,第3次猜的数B3,...,直至猜中为止。计算机给出评价,猜的次数越少当然越好。评价等级的相关规则请自行拟定。请自行设计并编写三个函数,分别实现出题、竞猜、评分功能。
Input
Output
HINT
提示:本题只需上交代码,系统无法测试。
#include<ctime>
#include<cstdlib>
using namespace std;
int getrand(void)
{
return rand()%101+1;
}
int guess(int a)
{
int n;
cin>>n;
return a-n;
}
bool judge(int a)
{
if(a>0)
{
cout<<"Too low. Try again please!"<<endl;
return true;
}
else if(a==0)
{
cout<<"Good! You guessed the number!"<<endl;
return false;
}
else
{
cout<<"Too high. Try again please!"<<endl;
return true;
}
}
void Rank(int cnt)
{
if(cnt<3)
{
cout<<"Goodboy!"<<endl;
}
else if(cnt<8)
{
cout<<"you can do better!"<<endl;
}
else
{
cout<<"maybe you should learn the dichotomy algorithm!"<<endl;
}
}
int main()
{
srand(time(NULL));
int n,cnt=0;
cout<<"I have a number between 1 and 100."<<endl;
cout<<"Can you guess my number?"<<endl;
cout<<"Please type your guess!"<<endl;
n=getrand();
while(judge(guess(n)))
{
cnt++;
}
Rank(cnt);
return 0;
}