Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zadanie 18- pomoc w rozwiązaniu zadania

Ostatnio zmodyfikowano 2014-10-27 18:53
Autor Wiadomość
dafuck17
Temat założony przez niniejszego użytkownika
Zadanie 18- pomoc w rozwiązaniu zadania
» 2014-10-16 16:48:07
Treść zadania: "Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy."

Mój kod :
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand( time( NULL ) );
    int licznik = 999;
    int liczby[ licznik ];
   
    do {
       
        liczby[ licznik ] =( rand() % 7 ) + 4;
        cout << liczby[ licznik ] << endl;
        licznik--;
       
    } while( licznik != 0 );
   
   
    return 0;
   
}

Jak widać na razie zrobiłem pierwszą część zadania czyli losowanie liczb całkowitych i wypisanie ich na ekranie, ale nie mam pomysłu jak zsumować te wylosowane liczby...
Lekcje z losowaniem i z tablicami czytałem już kilkanaście razy i dalej pustka :/
Piszę nowy temat bo mam nadzieję że mnie naprowadzicie, sam wpadnę jak rozwiązać to zadanie i nie będę musiał szukać gotowych rozwiązań na tym forum. Pozdro ;)
P-118628
pekfos
» 2014-10-16 16:58:15
Kod który masz jest niepoprawny. Wychodzisz poza tablice.
P-118629
dafuck17
Temat założony przez niniejszego użytkownika
» 2014-10-16 17:55:27
A w którym miejscu wyszedłem poza tablicę? I jak to poprawić? :/
P-118631
Memento96
» 2014-10-16 18:26:00
while licznik <1

A wynik podpowiem, że masz do czegoś przypisać a potem wynik += wynik
P-118632
Rashmistrz
» 2014-10-16 19:25:56
//Ogólnie polecam Ci przeczytać jeszcze raz,
//ale uważnie cały rozdział, gdyż tam jest
//wszystko opisane czego potrzebujesz.
//większość* :F

A w którym miejscu wyszedłem poza tablicę?
Tworząc tablicę, w kwadratowych nawiasach podajemy liczbę elementów.
Jako że indeksowanie zaczyna się od zera to pierwszy element ma indeks
0, a ostatni element, czyli 999ty, ma indeks 998.

Wychodzisz poza zakres tablicy w pierwszym obiegu pętli,
odwołując się do elementu o indeksie 999, czyli 1000nego...
mając tylko 999 możliwych miejsc w tablicy.

I jak to poprawić? :/
Przenieś dekrementację na początek pętli,
bądź użyj predekrementacji na zmiennej
licznik, wybierając indeks elementu...
int liczby[ --licznik ];

(predekrementacja - zmniejszenie
zmiennej o 1 przed użyciem.)

Wtedy w pierwszej pętli wywołasz 999ty element o
indeksie 998, a nie jak wcześniej 1000ty o indeksie 999.

Nie zapomnij poprawić:
} while( licznik != 0 );
,bo w ten sposób omijasz pierwszy element tablicy.
Poprawić tą pętlę można na wiele sposobów,ale podam
Ci tylko jeden, by się nie rozpisywać zbytnio:
} while( licznik >= 0 );


nie mam pomysłu jak zsumować te wylosowane liczby...
-Utwórz dodatkową pętlę w której użyjesz zmiennej licznik.
-Stwórz zmienną z początkową wartością równą zero.
-Użyj operatora "+=". (skrócony zapis dodawania)
-Dodaj każdą liczbę z tablicy.

Połącz powyższe czynności jak klocki,
by uzyskać oczekiwany efekt...

Powodzenia! ;-)
P-118636
Memento96
» 2014-10-16 19:33:19
@up
A co innego napisałeś niż ja i kolega 2up? ;)
P-118637
Rashmistrz
» 2014-10-16 19:36:06
Teoretycznie nic, a praktycznie wszystko...
Po prostu się rozpisałem. ^_^
P-118638
Mateus.
» 2014-10-17 05:31:28
No i jeszcze tak:

int licznik = 999;
int liczby[ licznik ];

nie tworzy się tablic.
P-118663
« 1 » 2 3
  Strona 1 z 3 Następna strona