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

[Przekazywanie tablic jednowymiarowych do funkcji] Zsumowanie liczb znajdujacych sie w tablicy

Ostatnio zmodyfikowano 2016-03-03 14:37
Autor Wiadomość
Pipot
Temat założony przez niniejszego użytkownika
[Przekazywanie tablic jednowymiarowych do funkcji] Zsumowanie liczb znajdujacych sie w tablicy
» 2016-03-03 13:00:06
Witam

Mam problem z pracą domową z lekcją związaną z przekazywaniem tablicy jednowymiarowych do funkcji. Mianowicie z kawałkiem kodu, który powinien realizować następującą zadanie: "Sumowanie określonej ilości liczb znajdujących się w tablicy i zwrot wyniku.".

Kod wygląda następująco:

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

void wylosujLiczby( int tablica[], int iRozmiar, int zakresOD, int zakresDO )
{
    int licznik = 0;
    do
    {
        tablica[ licznik ] =( std::rand() %( zakresDO - zakresOD + 1 ) ) + zakresOD;;
        licznik++;
    } while( licznik < iRozmiar );
   
}

void wypiszLiczby( int tablica[], int iRozmiar )
{
    std::cout << "Podales nastepujace liczby: ";
    int licznik = 0;
    do
    {
        std::cout << tablica[ licznik ] << ", ";
        licznik++;
    } while( licznik < iRozmiar );
   
}

int obliczSume( int tablica[], int iRozmiar )
{
    int licznik = 0;
    int suma = 0;
    do
    {
        suma = suma + tablica[ licznik ];
        licznik++;
    } while( licznik < iRozmiar );
   
}

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;
}

Natomiast efekt działania programu wygląda tak:

http://static.pokazywarka.pl/i​/6385283/191260​/przechwytywanie.jpg

Jak można zauważyć, program losuje wartości, wypisuje je, jednak suma wszystkich liczb w tablicy ZAWSZE wynosi 999. Jest to oczywiście wartość błędna. Nie jestem jednak w stanie zlokalizować gdzie popełniłem błąd. Czy któryś z szanownych użytkowników jest w stanie przejrzeć mój kod i znaleźć błąd, czemu program zamiast zsumować wartość wszystkich liczb w tablicy wypisuje liczbę 999?
P-145515
Elaine
» 2016-03-03 13:25:36
obliczSume nic nie zwraca, a powinno.
P-145516
Pipot
Temat założony przez niniejszego użytkownika
» 2016-03-03 14:37:06
Faktycznie, dopisałem do funkcji "obliczSume" następujący wiersz:
return suma;
Program zaczął działać prawidłowo. Dziękuję za pomoc :)
P-145517
« 1 »
  Strona 1 z 1