[Przekazywanie tablic jednowymiarowych do funkcji] Zsumowanie liczb znajdujacych sie w tablicy
Ostatnio zmodyfikowano 2016-03-03 14:37
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: #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.jpgJak 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? |
|
Elaine |
» 2016-03-03 13:25:36 obliczSume nic nie zwraca, a powinno. |
|
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 :) |
|
« 1 » |