Вы используете srand
неправильно, эта конкретная функция предназначена для установки начального числа для последующих вызовов на rand
.
Основная идея состоит в том, чтобы вызвать srand
один раз с неопределенным начальным числом, а затем непрерывно вызывать rand
, чтобы получить последовательность чисел. Что-то вроде:
srand (time (0));
for (int i = 0; i < 10; i++)
cout << (rand() % 10);
, что должно дать вам случайные числа от 0 до 9 включительно.
Как правило, вы не устанавливаете начальное значение на конкретное значение, если только вы не тестируете или не хотите идентичной последовательности чисел по какой-либо другой причине. Вы также не устанавливаете начальное число каждый раз перед тем, как позвонить rand
, так как вы, вероятно, будете получать один и тот же номер повторно.
Так что ваш конкретный цикл while
будет больше похож на:
srand (9); // or use time(0) for different sequence each time.
while (close != "y") { // for 1 thru 9 inclusive.
rand_int = rand() % 9 + 1;
cout << rand_int << endl;
cout << "Do you wish to exit the program? [y/n]? ";
cin >> close;
}