Witam,
Mam taki oto problem z ktorym nie moge sobie poradzic i szczerze nie wiem co jest grane.
void Tablica::LosowanieLiczb() //Losowanie liczb JEDNORAZOWO zalezy od systemu
{
nTablicaSystem = new int [nLiczbaSystem];
// nLiczbaSystem jest zmienna wpisywana w momencie wywolania konstruktora (zakladamy 6)
for (int i = 0; i < nLiczbaSystem; ++i)
{
nTablicaSystem[i] = 0; // wyzerowanie liczb tablicy
}
for (int i = 0; i < nLiczbaSystem; ) // losowanie 6 liczb od 1 do 49
{
nTablicaSystem[i] = rand() % 49 + 1;
bool bPowtarzaSie = false;
std::cout << i << std::endl; // wywolanie na ekranie aktualnie przebiegajacej wartosci petli I
_getch();
for (int j = 0; j < i; ++j)
{
std::cout << nTablicaSystem[i] << " i " << i << std::endl; // wywolanie na ekranie aktualnie przebiegajacej wartosci petli I ; wartosc nTablicaSystem 'I' posiada jeszcze przydzielona losowo liczbe
std::cout << nTablicaSystem[j] << " j " << j << std::endl; // wywolanie na ekranie aktualnie przebiegajacej wartosci petli I ; wartosc nTablicaSystem 'J' posiada jeszcze przydzielona losowo liczbe
_getch();
if (nTablicaSystem[i] == nTablicaSystem[j]) // sprawdzenie czy sie powtarza
{
bPowtarzaSie = true;
break;
}
} // domyslam sie ze w tym momencie tablica gubi wpisana w aktualne oczko wartosc
if (!bPowtarzaSie) ++i;
std::cout << "Liczba " << i << " : ";
std::cout << nTablicaSystem[i] << " , ";
_getch();
}
}
Metoda losuje dowolne liczby z przedzialu i wpisuje do tablicy, jest to metoda klasy Tablica ktora wywoluje. Niestety po przejsciu jednego calego cyklu wartosc [i] np. 1 jest zero. Podane wywolania na ekranie sluza jedynie sprawdzeniu w ktorym momencie tablica gubi zadeklarowana wartosc. Nie wiem niestety dlaczego tak sie dzieje, ze po przejsciu raz petli nie zapisuje danych w tablicy, skoro wczesniej wszystko bylo ok. Zapomnialem dodac jeszcze jedna wazna rzecz, przy deklaracji tablicy 6 elementowej, 5 pierwszych elementow posiada wartosc 0, czasem piaty przybiera dobra wartosc(wylosowana), za to 6 ma wartosc ujemna czyli jest poza zakresem zawsze.