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

Tablice - zadanie domowe (poziom 2, rozdział 18)

Ostatnio zmodyfikowano 2016-08-10 13:38
Autor Wiadomość
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:

C/C++
#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ę
C/C++
for( int i = 1; i < 999; i++ )
program sumuje 998 liczb i daje właśnie taki wynik. Jak zamienię to na:
C/C++
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?
P-150697
karambaHZP
» 2016-08-10 05:45:10
C/C++
for( int i = 1; i <= 999; i++ )
{ tablica[ i ] = losowanieLiczby();
Pomijasz pierwszy element tablicy przy zapisie losowanych liczb.
P-150703
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?
P-150706
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.
P-150708
« 1 »
  Strona 1 z 1