Для генерации псевдослучайного числа в диапазоне от 0 до RAND_MAX включительно, используется функция, которая находится в библиотеке <stdlib.h> и меет вид:
int rand(void);
К сожалению у этого генератора есть недостаток - он выдает всегда одну и ту же последовательность псевдослучайных чисел и поэтому используется в связке с другой функцией, которая устанавливает начальное значение последовательности псевдослучайных чисел, находится в той же библиотеке и имеет вид:
void srand(unsigned int seed);
где seed - без знаковое целое число определяющее начальное значение.
Но это не решает проблему, т.к. в этом случае будет постоянно "генериться" одна и та же последовательность, начиная с заданного значения seed.
Для устранения этого недостатка используются текущие дата/время. Т.е. во время каждого нового вызова будет новое значение времени, которое и будет начальным значением для генерации новой последовательности. Для этого используется функция, которая находится в библиотеке <time.h> и имеет вид:
time_t time(time_t *t);
В качестве аргумента, в данном случае, будет передаваться нулевой указатель NULL.
С теорией закончено 😀! Посмотрим практический пример:
А так выглядит результат работы нашей программы в терминале:
Если статья вам понравилась - не забудьте поставить лайк 👍 и подписаться на канал!
Все вопросы и предложения пишите в комментариях.