[Lekcja 19] Tablica, a funckje.
Ostatnio zmodyfikowano 2013-06-04 18:24
oskarkxyz Temat założony przez niniejszego użytkownika |
[Lekcja 19] Tablica, a funckje. » 2013-06-04 16:55:45 Witam. Jestem na lekcji 19 i za nic nie mogę sobie poradzić z przesyłaniem danych z jednej funkcji do funkcji main. Byłbym naprawdę wdzięczny gdyby ktoś rzucił okiem na ten kod i powiedział mi co jest w nim nie tak. Po kompilacji program uruchamia się po czym wyskakuje błąd i program się zamyka. @@edit. Tak samo jeżeli używam jednego "licznika" w funkcji to jak go "przesłać" do drugiej funkcji? Próbowałem przenieść licznik "i" z funkcji wylosujLiczby do wypiszLiczby, ale coś mi nie wyszło. Wdzięczny będę za pomoc :) #include <iostream> #include <cstdlib> #include <ctime>
int wylosujLiczby( int tablica[], int a, int b, int c ) { int i; tablica[ i ] =(( rand() %( b - c ) ) + c ); i = 0; do { tablica[ i ] =(( rand() %( b - c ) ) + c ); i++; } while( i < a ); }
int wypiszLiczby( int tablica[], int z ) { std::cout << "Wylosowane liczby:"; int i; i = 0; do { std::cout << tablica[ i ] << ", "; i++; } while( i < z ); }
int obliczSume( int tablica[], int h ) { int i; i = 0; int iSuma; iSuma = 0; do { iSuma += tablica[ i ]; i++; } while( i < h ); }
int main() { srand( time( NULL ) ); int tablica[ 10 ]; wylosujLiczby( tablica, 10, 4, 10 ); wypiszLiczby( tablica, 10 ); int iSuma = obliczSume( tablica, 10 ); std::cout << "Suma liczb wynosi: " << iSuma << std::endl; return 0; }
|
|
Berux |
» 2013-06-04 17:15:18 Pokaż nam błędy :) |
|
docentpp |
» 2013-06-04 17:18:34 Przeczytaj dokładnie , kiedy funkcja ma zwrócić wartość , a kiedy nie ( void)
funkcje: wylosujLiczby wypiszLiczby wg Twojego algorytmu muszą być void.
w funkcji obliszSume nie przypisujesz jawnie zwracanej wartości. |
|
oskarkxyz Temat założony przez niniejszego użytkownika |
» 2013-06-04 17:23:00 Zamieniłem funkcje z int na void, błąd ciągle ten sam. Kiedy wciskam F9 wyskakuje mi pusty cmd, a 0.1s później błąd "Wystąpił problem z aplikacją x.exe i zostanie ona zamknięta. Przepraszamy za kłopoty." |
|
killjoy |
» 2013-06-04 18:11:17 int wylosujLiczby( int tablica[], int a, int b, int c ) { int i; tablica[ i ] =(( rand() %( b - c ) ) + c ); i = 0; do { tablica[ i ] =(( rand() %( b - c ) ) + c ); i++; } while( i < a ); }
Poprostu zainicjalizuj zmienną i przy tworzeniu, lub daj tablica[ i ] =(( rand() %( b - c ) ) + c ); za to kiedy i nadajesz wartość. |
|
oskarkxyz Temat założony przez niniejszego użytkownika |
» 2013-06-04 18:24:00 Dziękuję :) zamiast tablica[ i ] =(( rand() %( c - b ) ) + b ); i = 0;
powinno być i = 0; tablica[ i ] =(( rand() %( c - b ) ) + b );
Jak tak sobie myślałem to nie robiło mi to większej różnicy, a jednak. Jeszcze raz dziękuję :) |
|
« 1 » |