Dilshan De Silva (Dippi) Ответов: 1

- Пользователь будет думать о случайном числе, а программа попытается угадать


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

Что я уже пробовал:

<pre>
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
	srand(time(NULL));

	int tries = 0;
	int iNum;
	int UpperLim = 100;
	int LowerLim = 10;
	int iCompNum;


	cout << "Enter a number: ";
	cin >> iNum;

	do
	{
		iCompNum = rand() % (UpperLim - LowerLim) + LowerLim;

		cout << "\nComputer's guess(" << 10 - tries << " tries left): ";
		cout << iCompNum;
		++tries;

		if (iNum > iCompNum)
		{
			cout << "\nThe number is less than the entered..!(" << 10 - tries << " tries left)\n\n";
			LowerLim = iCompNum+1;
		}
		else if (iNum < iCompNum)
		{
			cout << "\nThe number is greater than the entered..!(" << 10 - tries << " tries left)\n\n";
			UpperLim = iCompNum-1;
		}
		else if (iNum == iCompNum)
		{
			cout << "\nYou got my number!!!\n\nYou guessed the number in just " << tries << " tries!\n\n";
		}
		else if (tries >= 10)
		 {
			cout << "You Lose!Correct Answer is:" << iNum << endl;
}
	} while (iNum != iCompNum);
	

	return 0;
}

k5054

В каком смысле это "не работает должным образом"?

Dilshan De Silva (Dippi)

Привет, спасибо, что нашли время. Поэтому, когда у программы заканчиваются попытки, она не выводит комментарий "Вы проиграли!Правильный ответ:".

Richard MacCutchan

"Это не работает должным образом"
Что это значит? Возможно, дело в том, что компьютер делает угадывание, но вы говорите пользователю, что он выигрывает или проигрывает.

Dilshan De Silva (Dippi)

Привет, спасибо, что нашли время. Поэтому, когда у программы заканчиваются попытки, она не выводит комментарий "Вы проиграли!Правильный ответ:".

Richard MacCutchan

Смотреть ниже.

1 Ответов

Рейтинг:
5

Richard MacCutchan

Проблема находится в конце цикла. Если у вас закончатся попытки, то вам нужно использовать break заявление, чтобы выйти из петли. А после выхода из цикла вы должны напечатать сообщение об ошибке или успехе, в зависимости от того, будет ли оно выполнено. iNum и iCompNum равны они или нет. Так что измените его на:

        else if (tries >= 10)
        {
             break;
        }
    } while (iNum != iCompNum);
    if (iNum == iCompNum)
    {
        cout << "You Lose! Correct Answer is:" << iNum << endl;
    }
    else
    {
        cout << "You win, I cannot find it" << endl;
    }
    
    return 0;
}


Dilshan De Silva (Dippi)

Спасибо Вам за помощь

Richard MacCutchan

Добро пожаловать.