Zadanie domowe lekcja 19.
Ostatnio zmodyfikowano 2016-09-03 18:43
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: 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: #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. |
|
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. |
|
kistel66 |
» 2016-09-03 18:41:19 Jeszcze zmienna wylosujLiczby() powinna być typu void, zamiast int, bo nic nie zwraca |
|
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. :) |
|
« 1 » |