Mam sobie tablicę jednowymiarową o 100 elementach. Nazywa się plansza. potrzebuje zsumować jej elementy.Napisałam taki kod. iloścBomn to int, jest wcześniej wyzerowana.
for (int i=0; i>99; i++)
{
iloscBomb = iloscBomb + plansza[i];
} kod nie działa. Cały czas wartość ilościBomb = 0. A wiem że w tablicy COŚ jest. Dokładniej trochę zer i jedynek. (zadeklarowana jest jako tablica short intów, nie bool)
Po drugie. Potrzebuję wylosować 25 rożnych liczb całkowitych z przedziału od 0 do 99. Jak?
Dopiero uczę się programowania, to co teraz piszę to "konsolowy saper". Tak sobie, żeby się nauczyć rozwiązywać problemy. Ale tego problemu jeszcze rozwiązać nie potrafię.
@Paulie90: Nie ma tam nic nowego. WIEM jak wylosować losowe liczby. Nie wiem jak wylosować trzydzieści tak żeby się nie powtarzały. Powtarzam, potrzebuje wykonać trzydzieści losowań i za każdym razem daną liczbę usuwac z zbiowu w którym losuję.
@Axoi: każdą wylosowaną liczbę zapisz do innej tablicy i za każdym razem sprawdzaj tablicę czy nowa liczba już wcześniej nie wystąpiła. Przyda się też licznik wylosowanych liczb aby wiedzieć, ile ich już masz
@oggy1989: o możliwości skrócenia wiem, ale taki zapis wydaje mi się bardziej dla mnie czytelny. wiem że raczej nie mam racji i po napisaniu paruset tysięcy linii kodu na pewno zmienię zdanie, ale na razie mam wklepanie mniej niż tysiąc w sumie. :P
Wiem jak losować jedną liczbę. Potrzebuję wylosować trzydzieści, które nie będą się powtarzać. Znaczy jakoś to obeszłam, ale ten, no. wolałabym to zrobic mając zawsze na pewno 30
Mam sobie tablicę jednowymiarową o 100 elementach. Nazywa się plansza. potrzebuje zsumować jej elementy.Napisałam taki kod. iloścBomn to int, jest wcześniej wyzerowana.
for (int i=0; i>99; i++)
{
iloscBomb = iloscBomb + plansza[i];
}
kod nie działa. Cały czas wartość ilościBomb = 0. A wiem że w tablicy COŚ jest. Dokładniej trochę zer i jedynek. (zadeklarowana jest jako tablica short intów, nie bool)
Po drugie. Potrzebuję wylosować 25 rożnych liczb całkowitych z przedziału od 0 do 99. Jak?
Dopiero uczę się programowania, to co teraz piszę to "konsolowy saper". Tak sobie, żeby się nauczyć rozwiązywać problemy. Ale tego problemu jeszcze rozwiązać nie potrafię.
losowanie:
srand(time(NULL))
rand() modulo costam
Do losowania liczb służy funkcja bool
@erwit:
Jak już co to lepiej :
http://en.cppreference.com/w/cpp/numeric/random
srand(time(NULL));
zmiennaZLiczbaLosowa = rand() % [górna granica losowania-dolna granica] + [dolna granica]
losowanie (low - high to przedział :D czyli 0-99)
int myRand(int low, int high) {srand(time(NULL));return rand() % (high - low + 1) + low;}pętla for powinna być i<99 :D czyli
for (int i=0; i<99; i++)no i przed pętlą musi być
int iloscBomb = 0;zapis
iloscBomb = iloscBomb + plansza[i];można skrócić do
iloscBomb += plansza[i];@mero3:
@Wruszbita_Maciej:
@Paulie90: Taki idiotyczny... Cóz, jak zwykle. Dzięki.
@komeniusz:
@sylwke3100:
@Paulie90: Nie ma tam nic nowego. WIEM jak wylosować losowe liczby. Nie wiem jak wylosować trzydzieści tak żeby się nie powtarzały. Powtarzam, potrzebuje wykonać trzydzieści losowań i za każdym razem daną liczbę usuwac z zbiowu w którym losuję.
@obiedzony: Bool? :P Mówię ze wypełniłam.
int result = std::accumulate( std::begin( iloscBomb ), std::end( iloscBomb ), 0 );uniform_int_distribution(min, max)?
Wiem jak losować jedną liczbę. Potrzebuję wylosować trzydzieści, które nie będą się powtarzać. Znaczy jakoś to obeszłam, ale ten, no. wolałabym to zrobic mając zawsze na pewno 30
@obiedzony: WAT?