Witam! Dopiero rozpoczynam swoją przygodę z C i mam pytanie: Jak przypisać zmiennej wartość losową z jakiegoś przedziału, np. 0-100, czy 0-20. Próbowałem takich konstrukcji:
double x, y;
x = (double) rand()/ (RAND_MAX + 1.0) );
y = 10*x;
int x, y;
x = rand();
y = x % 10;
int x, y;
x = rand();
srand(x);
x = rand();
srand(2*x);
y = x % 10;
Niestety, we wszystkich powyższych przypadkach wciąż generuje się ta sama liczba (również po restarcie), odpowiednio: w 1 – 0, w 2 – 6, a w 3 – 7. Generowałem również liczbę pseudolosową z zegara systemowego w taki sposób:
struct tm *czas_p, czas;
int x;
czas_p = &czas;
time(czas_p);
x = czas_p->tm_sec % 10;
Owszem, liczba przy każdym uruchomieniu programu była inna, ale dla moich potrzeb komputer musi kilkakrotnie losować różne liczby, jeśli staram się to zrobić, to komputer we wszystkich miejscach wyświetla tą samą liczbę. Jeśli ktoś mógłby to proszę o jakiś kod wraz z objaśnieniem.