Я использую C ++, и я новичок, но одна из моих последних проблем - использование srand. Шранд выводит гигантский список чисел, пока не перейдет к следующему. Вот мой код, чтобы вы могли понять, о чем я говорю
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string>
using namespace std;
void function2()
{
int num;
string none;
string end1;
while (num != 69420)
{
srand((unsigned) time( NULL));
num = rand() % 100000 + 1;
cout << num << "\n";
}
if (num != 69420)
{
cout << "gg's";
cin >> end1;
}
}
int main()
{
int num;
string none;
while (num != 69420)
{
srand((unsigned) time( NULL));
num = rand() % 100000 + 1;
cout << "Press enter.";
getline(cin, none);
if (none == " ")
{
}
else
{
function2();
}
if (num != 69420)
{
break;
}
else
{
continue;
}
}
}
Вероятно, это неправильно, и поэтому я здесь. Спасибо всем, если вы попытаетесь мне помочь!
srand
. Я рекомендую прочитать документацию, чтобы узнать, что он делает и как его следует использовать. - person user4581301   schedule 03.03.2020srand
только один раз для своей программы: Рекомендуемый способ инициализации srand? - person Algirdas Preidžius   schedule 03.03.2020rand
генерирует только числа доRAND_MAX
иRAND_MAX
, которые могут достигать 32767. Вы можете застрять в генерации навсегда и никогда не сгенерировать 69420. - person user4581301   schedule 03.03.2020rand
был разработан для генерации случайных чисел в условиях ограничений 1970-х годов, таких как наличие половины КБ ОЗУ и ЦП с тактовой частотой кГц. В наши дни это не очень хорошее решение. К счастью, многие из его проблем были решены с помощью дополнений к стандартной библиотеке C ++ < / а>. - person user4581301   schedule 03.03.2020