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

Zadanie domowe lekcja 19.

Ostatnio zmodyfikowano 2016-09-03 18:43
Autor Wiadomość
Manite
Temat założony przez niniejszego użytkownika
Zadanie domowe lekcja 19.
» 2016-09-03 18:08:28
Witam.

Mam problem z zadaniem, które znajduje się w lekcji 19. Aplikacja po włączeniu wypisuje liczby ale suma tych liczb nie jest taka jak powinna.

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. Wszelkie operacje mają zostać zrealizowane w oparciu o funkcje. Tablica ma być zadeklarowana w funkcji main. Oczekiwane funkcje:

Wypełnienie tablicy o podanym rozmiarze losowymi liczbami z przedziału podawanego przez argumenty funkcji.
Sumowanie określonej ilości liczb znajdujących się w tablicy i zwrot wyniku.
Wypisywanie zawartości tablicy.

Przykładowa implementacja funkcji main:
C/C++
int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}

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

using namespace std;

int wylosujLiczby( int t[], int a, int b, int c )
{
    int i = 0;
    do
    {
        t[ i ] =( rand() %( c + 1 - b ) + b );
        i++;
    } while( i < a );
   
}

void wypiszLiczby( int t[], int a )
{
    int i = 0;
    do
    {
        cout << t[ i ] << endl;
        i++;
    } while( i < a );
   
}

int obliczSume( int t[], int a )
{
    int wynik;
    int i = 0;
    do
    {
        wynik += t[ i ];
        i++;
    } while( i < a );
   
    return wynik;
}
int main()
{
    srand( time( NULL ) );
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}

Proszę o pomoc.
P-151399
carlosmay
» 2016-09-03 18:40:04
Zmienna wynik w funkcji obliczSume jest niezainicjalizowana,
więc zaczynasz zliczać wartość od jakiejś przypadkowej wartości.

Poszukaj instrukcji używania debuggera. Służy do szukania takich błędów.

down: dzięki @kistel66, nie zerknąłem tam.
P-151402
kistel66
» 2016-09-03 18:41:19
Jeszcze zmienna wylosujLiczby() powinna być typu void, zamiast int, bo nic nie zwraca
P-151403
Manite
Temat założony przez niniejszego użytkownika
» 2016-09-03 18:43:51
Już wszystko działa. Poszukam tej instrukcji debuggera. Dziękuję za rady. :)
P-151404
« 1 »
  Strona 1 z 1