Не могу получить случайные числа в c - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь получить два случайных числа от 0 до 11, но я получаю одно и то же число всякий раз, когда выполняю свой код. Эти цифры 7 и 10. Вот мой код:

void track_machine(){
        int X = 0,Y = 0; //Coordinates
        double D = 0,R = 0; //Distance and replacement
        refresh_position(&X,&Y,&D,&R);
        printf("%d\n",X);
        printf("%d\n",Y);
}
void refresh_position(int *X, int *Y, double *D, double *R){
        *X = rand()%12;
        *Y = rand()%12;
}

1 Ответ

1 голос
/ 26 марта 2020

С помощью

#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */

вызовите srand(time(NULL)); в начале вашей программы - прежде чем использовать rand() - чтобы каждый раз устанавливать разные начальные числа.

"Случайное число" -генератор ", несмотря на свое название, все еще является детерминированным c алгоритмом. При запуске с одинаковыми начальными значениями (когда srand не вызывается) он всегда будет давать одинаковые результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...