如何编写"remembers"先前猜测的数字的程序?
How to write a program that "remembers" a previously guessed number?
我正在做一道题目,题目要求我和电脑做一个猜谜游戏。以电脑为猜者:
"写一个程序计算一个随机数1到100。然后程序要求用户猜测数字。如果用户猜测过高或过低,则程序应相应地输出"过高"或"过低"。程序必须让用户继续猜测,直到用户正确猜出数字。
★修改程序以输出用户猜了多少次才猜对正确的数字。
★★修改程序,使计算机猜测用户秘密决定的数字,而不是用户猜测计算机给出的数字。用户必须告诉计算机它的猜测是过高还是过低。"
到目前为止,我已经完成了的前两位,但是我被困在了两星部分,程序在那里猜测数字。
下面是我的代码(但正如你所能看到的,它并没有完全按照计划工作)
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int compnumber;
string ok;
cout << "Think of a number between 1 and 100. Type 'ok' and I'll try and guess it." << endl;
cin >> ok;
cout << endl;
srand(time(NULL));
compnumber = rand() % 100 + 1;
cout << compnumber << endl;
cin >> ok;
while (ok != "correct")
{
if (ok == "high")
{
compnumber = rand() % compnumber + 1;
cout << compnumber << endl;
cin >> ok;
}
if (ok == "low")
{
compnumber = rand() % 100 + compnumber;
cout << compnumber << endl;
cin >> ok;
}
}
cout << "I won!" << endl;
}
我正在想办法让程序记住它之前猜测的数字。我尝试使用if (ok == "high")
和if (ok == "low")
来创建您所谓的"边界",以便程序"记住"。所以如果它的值太高,它会记住它刚刚猜测的值太高,因此会猜测比它低的值,反之亦然,如果它的值太低。
但是我很难让程序记住这两个部分,例如,如果我的秘密号码是50,计算机猜测80。我会说它太高了,所以它会降得更低。如果它猜测40,我会说它太低了,它会更高。但是这个程序比它原来猜测的80要高,有时甚至比100还要高,我不明白!
任何帮助都会很感激。我不知道我是否走对了这条路,所以任何指示都会有所帮助!谢谢你!
你需要两个额外的变量-说int at_least = 1, at_most = 100;
-当你被告知"高"或"低"时,修改那些以反映可能答案范围的新知识。当您选择一个新的compnumber
时,通过对当前范围的大小进行建模并添加at_least
,使其保持在该范围内。
您需要两个变量来存储猜测的高值和低值,以便计算机知道应该猜测的范围。将此添加到您的代码中:
int high = 101;
int low = 0;
然后当计算机猜测过高时执行以下操作:
high = compnumber;
compnumber = ( rand() % (high-low - 1) ) + low;
当太低时,这个:
low = compnumber;
compnumber = ( rand() % (high-low - 1) ) + low;
希望有帮助
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 用于检查数字是否有数字或可被该数字的值整除的程序
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 为什么当我输入较大的数字时,我的程序会到达文件末尾?
- 如何在C++程序中使用下标数字?
- 为什么使用数组元素查找最大数字的程序不起作用?
- 如何在 WindowProc 处理程序中区分箭头键和数字键盘?
- 在 txt 文件中显示前两个数字的程序
- 在不添加进位的情况下添加数字的C++程序
- 为什么我的程序在读取/写入文件时会删除最重要的数字?
- 一个C++程序,用于在输入位数时输出具有特定位数的 .txt 文件中的所有数字
- 每次运行此 c++ 程序时如何获得不同的数字?
- 程序 查找数字的重复
- 反转一个数字程序不起作用,为什么?
- 为什么这个程序接受整数和字母数字输入并打印它们? C++ 中的 std::string 也采用整数值吗?
- 如何制作一个查找数字平方值的 c++ 程序
- 双精度数字程序意外值
- For循环-魔术数字程序
- 完全数字程序中的逻辑错误