Tablice - zadanie domowe (poziom 2, rozdział 18)
Ostatnio zmodyfikowano 2016-08-10 13:38
jundymek Temat założony przez niniejszego użytkownika |
Tablice - zadanie domowe (poziom 2, rozdział 18) » 2016-08-10 00:29:49 Mam mały problem z zadaniem domowym. "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 wygląda następująco: #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int losowanieLiczby() { int liczba =( rand() % 1 ) + 1; return liczba; }
int main() { int tablica[ 999 ]; int suma = 0; srand( time( NULL ) ); for( int i = 1; i <= 999; i++ ) { tablica[ i ] = losowanieLiczby(); cout << i << ". Liczba od 4 do 10: " << tablica[ i ] << endl; } for( int i = 0; i < 999; i++ ) { suma += tablica[ i ]; } cout << "Suma" << suma; return 0; }
Dla sprawdzenia wyniku sumowania ustawiłem, że losuje zawsze 1. Pierwsza pętla w main wypisuje 999 liczb, druga powinna je zsumować. Jak ustawię for( int i = 1; i < 999; i++ )
program sumuje 998 liczb i daje właśnie taki wynik. Jak zamienię to na: for( int i = 0; i < 999; i++ )
chcąc zacząć od indeksu 0 to dostaję wynik 4785198. Nie mam pojęcia skąd się to bierze. Może ktoś mi wytłumaczyć, gdzie popełniam błąd? EDIT - znalazłem błąd. W tablicy umieszczałem liczby od indexu 1 zamiast 0 (pierwsza pętla for). Swoją drogą jeśli 0 nie zostało wypełnione to czemu pojawił się taki dziwny wynik sumowania? |
|
karambaHZP |
» 2016-08-10 05:45:10 for( int i = 1; i <= 999; i++ ) { tablica[ i ] = losowanieLiczby();
Pomijasz pierwszy element tablicy przy zapisie losowanych liczb. |
|
jundymek Temat założony przez niniejszego użytkownika |
» 2016-08-10 10:50:20 Już sobie odpowiedziałem na moje wątpliwości. Zastanawia mnie skąd się wzięły te wielkie liczby przy pominięciu pierwszego elementu? |
|
Gibas11 |
» 2016-08-10 13:38:29 W pierwszej komórce były losowe dane. Btw nie wiem czy to już poprawiłeś, ale wychodzisz poza zakres tablicy. |
|
« 1 » |