【发布时间】:2018-05-24 12:29:27
【问题描述】:
我正在制作一个简单的猜谜游戏程序。用户输入一个 100 的值,程序会告诉用户他们的猜测是太高还是太低。我想这样做,以便程序让用户知道他们之前已经输入了该当前号码。如何在我的程序中实现一个循环,让用户猜测并将其与数组列表进行比较以查找重复值?
#include <ctime>
#include <iostream>
#include <iomanip>
using namespace std;
#include <cstdlib>
int main()
{
srand(time(0));
const int SIZE = 100; //array
int number[SIZE];
int i;
int numb = rand() % 100; //rng
cout <<"Hint: "<< numb << endl;
cout << " " << endl;
cout << "I'm thinking of a number between 1 and 100. Guess what it is: ";
for (i = 0; i < SIZE; i++)
{
cin >> number[i];
if (number[i] == numb)
{
cout << "Correct! It's " << numb << endl; //if user guesses correct
break;
}
else if (number[i] < numb) //if user guesses too low
{
cout << "That's too low! guess again: " ;
}
else if (number[i] > numb) //if user guesses too high
{
cout << "That's too high! guess again: " ;
}
}
}
【问题讨论】:
-
将所有以前输入的值保存在 std::set 中,并在获得新值时检查它是否以前输入过
-
不要直接将数字添加到数组中。将其保存在临时变量中,遍历数字数组以检查重复项,仅在未找到重复项时添加。不要接受数字数组中超出可接受范围的值。在这种情况下,100。仅当您不应该使用 STL 时才这样做。