Wpis z mikrobloga

#cpp #programowanie

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ę.
  • 23
@Axoi:

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];
@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