

W ramach ćwiczeń napisałem sobie programik, który ma być czymś w rodzaju losowania lotto.
Generalnie założenia programu są takie:
- losuje jakąś cyfrę z przedziału 1-49, zapisuje ją do tablicy,
- przy następnym losowaniu przeszukuje całą tablicę, sprawdzając czy taka liczba jest już w jakimś elemencie tablicy, jeśli jest losuje od nowa, i sprawdza dopóki wylosowana liczba będzie unikalna,
- wszystko powtarza się 6 razy,
Generalnie programik pisany na szybko, i nie dbałem szczególnie o jakość kodu (powtórzenia etc), głównie chodziło mi o to żeby program zadziałał, a później kod i tak zostałby poddany refaktoryzacji.
Niby wszystko działa, natomiast jest problem tego typu, że nie wiedzieć czemu jeśli zostanie wylosowana liczba 1 lub 46 to nawet mimo iż nie ma jej w tablicy zostaje ona zmieniona z automatu na inną. Nie mam bladego pojęcia dlaczego do tego dochodzi.
Program napisany tak, że w wyniku wylosowania liczby już będącej w tablicy wyświetla ją oraz następną wylosowaną, która zastępuje tą powtarzającą się - to tak w celach lepszego debbugingu.
Poniżej wkleja kod.
http://wklej.org/id/1860211/
//Hmmm mam częściowe rozwiązanie problemu - przy tworzeniu tablicy zamiast 6 elementów wpisałem sobie np. 10. Nie wystąpił już problem z liczbami 1 oraz 46. Zastanawia mnie jednak czemu tutaj jest problem. Może chodzi o to że pętla sprawdzająca czy wylosowana liczba jest w tablicy, sprawdza nawet tablice, które w zasadzie są puste? Patrząc na skrypt wygląda to tak, że przy losowaniu np. 2 liczby, skrypt i tak sprawdza elementy 0-5 tablicy, mimo, że niektóre z nich nie mają jeszcze przypisanych wartości?
Zmieniłem trochę warunek przy sprawdzaniu tablicy - teraz wygląda tak while (n!=a)..... gdzie a oznacza, która liczba jest teraz losowana (który przebieg głównej pętli), teoretycznie działa, bo sprawdza tylko te elementy tablicy, które mają jakąś wartość. W praktyce jeśli to dobrze rozumiem (proszę o skorygowanie jeśli nie) skrypt działa na takiej zasadzie, że jeśli losuje 3-cią liczbę (a = 2) sprawdza mi elementy tablicy o indeksach [0], [1].