[c++] Problem z funkcja srand

0

Od razu mówię że jestem początkujący. Chcę napisać program który dla odpowiedniej ilości dni pracujących będzie losowo ustawiał pracowników na kasach (póki co chcę tylko żeby dobrze losował tzn. chodzi mi o to iż pracownicy w poszczególnych dniach mogą być na dwóch lub trzech stanowiskach). Tylko natknąłem się na problem którego obecny stan wiedzy nie jestem w stanie rozwiać, otóż aplikacja kończy się nieoczekiwanym błędem. Wyskrobałem coś takiego:

#include <iostream>
#include <ctime>
#include <conio.h>
#include <time.h>

using namespace std;

int random( int nMin, int nMax) { return rand() % nMax + nMin; }
int main()
{
srand (time(0));
string kasa[11] = {"Pracownik 1", "Pracownik 2", "Pracownik 3", "Pracownik 4", "Pracownik 5", "Pracownik 6", "Pracownik 7", "Pracownik 8", "Pracownik 9", "Pracownik 10", "Pracownik 11"};
cout << "Podaj ilosc dni pracujacych\n";
int a;
cin >> a;
for (int j=0, k=0; j<a; j++)
{
    cout <<"\n"<< "Dzien "<<j+1<<"\n"<< endl;
    cout << "Kasa "<< endl;
    while (k<3)
    {
          cout << kasa[random(0, 12)]<< endl;
          k++;
          }
    k=0;
}
getch();
}

Po dodaniu instrukcji "_sleep(1000)" po wierszu "cout << kasa[random(0, 12)]<< endl;" stwierdzam że błąd wyskakuję losowo w różnych miejscach (a czasem wszystko działa dobrze) zatem wnioskuję iż problem leży w funkcji srand (mogę się mylić i nawet bym jeśli problem leżał by w czymś innym)
Bardzo proszę o pomoc, nad czym powinienem pomyśleć, o czym doczytać lub ewentualnie proszę o poprawienie kodu.
Z góry dziękuje i pozdrawiam.

0
nowator napisał(a)

Po dodaniu instrukcji "_sleep(1000)" po wierszu "cout << kasa[random(0, 12)]<< endl;" stwierdzam że błąd wyskakuję losowo w różnych miejscach (a czasem wszystko działa dobrze) zatem wnioskuję iż problem leży w funkcji srand (mogę się mylić i nawet bym jeśli problem leżał by w czymś innym)
A dlaczego tam jest 12?

0

dzięki, wszystko jest teraz w porządku

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