[C++]Przekazywanie tablic jednowymiarowych do funkcji
Ostatnio zmodyfikowano 2014-01-26 10:50
Arkhangelsk Temat założony przez niniejszego użytkownika |
[C++]Przekazywanie tablic jednowymiarowych do funkcji » 2014-01-25 19:45:53 Witam, mam pytanie co do zadania 19. Oto treść. 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; }
A oto mój program #include <iostream> #include <ctime> #include <cstdlib> using namespace std;
void wylosujLiczby( int t[], int i, int start, int stop ) { srand( time( NULL ) ); cout << "Program wylosuje teraz " << i << " liczb" << " z przedzialu " << start << " - " << stop << endl; i = 0; do { t[ i ] =( rand() %( stop - start ) + 1 ) + start; i++; } while( i < 999 ); }
void wypiszLiczby( int t[], int i ) { cout << "Teraz wypisze liczby, ktore udalo mi sie zaladowac" << endl; i = 0; do { cout << t[ i ] << ", "; i++; } while( i < 999 ); cout << "." << endl; }
int obliczSume( int t[], int i ) { cout << endl << "Ostatni krok, teraz zsumuje wszystkie wylosowane liczby \n\n"; i = 0; int suma = 0; do { suma = suma + t[ i ]; i++; } while( i < 999 ); return suma; }
int main() { int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 10 ); wypiszLiczby( tablica, 999 ); int iSuma = obliczSume( tablica, 999 ); cout << "Suma liczb wynosi: " << iSuma << endl; return 0; }
Program działa, to do czego mam zastrzeżenia zaznaczyłem w kodzie, moje pytanie brzmi: czy da się to rozwiązać z użyciem funkcji void? Jeśli tak to jak. Bo trochę źle się z tym czuje, nie wiem czy w zamyśle twórcy kursu było, aby tak to rozwiązać. |
|
stryku |
» 2014-01-25 22:57:18 Można. Możesz przekazać w parametrze funkcji wskaźnik na sumę i zapisać tam wartość po prostu |
|
Monika90 |
» 2014-01-26 00:55:27 To nie jest na siłę - to jest najbardziej naturalny sposób napisania takiej funkcji. |
|
Arkhangelsk Temat założony przez niniejszego użytkownika |
» 2014-01-26 10:50:05 Z tym na siłę miałem bardziej na myśli, że wcześniej w kursie nie było to omówione, jednak wydało mi się logiczne, że trzeba tam tego użyć. @stryku Rzeczywiście, zrobiłem jak mówisz i działa :D Chyba za długo nad tym siedziałem, że najprostsze rozwiązanie nie przyszło mi do głowy. Dzięki, temat można uznać za zamknięty. |
|
« 1 » |