Rand w c++

0

Witam. Mam problem z losowaniem

		switch (rand() % 4)
		{
		case 0: z0 = new Figura();
			cout << *z0;
			Fig[i] = z0;
			break;

		case 1: z1 = new Kwadrat(rand() % 50 + 1);
			cout << *z1;
			Fig[i] = z1;
			break;

		case 2: z2 = new Prostokat(rand() % 50 + 1, rand() % 50 + 1);
			cout << *z2;
			Fig[i] = z2;
			break;

		case 3: z3 = new Kolo(rand() % 50 + 1);
			cout << *z3;
			Fig[i] = z3;
			break;
		}

Przy prostokącie dobrze losowana jest tylko druga wartość, natomiast pozostale figury wybierana jest ciagle wartosc -6,27744e+066

P.S. Czasami pojawiają się wyniki z przedzialu 1-50, ale nie jest to systematyczne

0

Upewnij się że gdzieś na początku programu masz linijkę

std::srand( std::time( 0 ) );

to raz, a dwa pewnie masz jeszcze błąd w innym miejscu

0

mam: srand(time(NULL));

0

Był błąd przy przepisywaniu konstruktora

1 użytkowników online, w tym zalogowanych: 0, gości: 1