Как менять предел числа в rand()?

Я изучаю C++, и заданием из учебника было написать программу Guess My Number, где компьютер пытается угадать заданное игроком число.

Мне нужно сделать так, чтобы компьютер менял диапазон числа, но когда я запускаю код и ввожу число, то ничего не происходит.

Я попробовал сделать предел переменной и менять ее значение каждый раз когда она оказывается больше или меньше введенного числа.

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    srand(static_cast<unsigned int>(time(0)));
    int maximum = 100;
    int randomNumber;
    int tries = 0;
    int userInput;
    cout<<"welcome to the number guessing game\n";
    cout<<"enter a number: ";
    cin>>userInput;
    do
    {
        randomNumber = rand() % maximum + 1;
        tries++;
        if (randomNumber > userInput)
        {
            tries++;
            maximum = randomNumber - 1;
        }
        else if (randomNumber < userInput)
        {
            tries++;
            maximum = randomNumber + 1;
        }
        else
        {
            cout<<"robot guessed the num. ";
            cout<<tries<<" try(ies)";
        }
    } while (userInput != randomNumber);
    return 0;
}

Ответы (2 шт):

Автор решения: Olga

Так?

#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand(static_cast<unsigned int>(time(0)));
    int maximum = 100;
    int randomNumber;
    int tries = 0;
    int userInput;
    cout << "welcome to the number guessing game\n";
    cout << "enter a number: ";
    cin >> userInput;

    while (userInput != randomNumber)
    {
        randomNumber = rand() % 100;
        tries++;
        cout << tries << " try(ies) ";
        cout << "randomNumber " << randomNumber << endl;
    }
    return 0;
}
→ Ссылка
Автор решения: Harry

Сдается мне, что вы хотели вот это?

int main()
{
    srand(static_cast<unsigned int>(time(0)));
    int maximum = 100, minimum = 0;
    int randomNumber;
    int tries = 0;
    int userInput;
    cout<<"welcome to the number guessing game\n";
    cout<<"enter a number [0 - " << maximum << "]: ";
    cin>>userInput;
    do
    {
        randomNumber = rand() % (maximum-minimum + 1) + minimum;
        cout << "Try " << randomNumber << endl;
        tries++;
        if (randomNumber > userInput)
            maximum = randomNumber - 1;
        else if (randomNumber < userInput)
        {
            minimum = randomNumber + 1;
        }
        else
        {
            cout<<"robot guessed the num. ";
            cout<<tries<<" try(ies)";
            break;
        }
    } while (userInput != randomNumber);
}
→ Ссылка