dexiu03 Temat założony przez niniejszego użytkownika |
Przekazywanie tablic jednowymiarowych do funkcji » 2011-08-07 22:24:53 Witam, robię sobie wasz kurs, ale nigdy nie potrafiłem zrozumieć tablic, jednak zrozumiałem je (chyba), ogólnie wykonałem wszystkie zadania samodzielnie aż do tego momentu... Przekazywanie tablic jednowymiarowych do funkcjiZadanie domowe i stoje już na punkcie pierwszym: -Wypełnienie tablicy o podanym rozmiarze losowymi liczbami z przedziału podawanego przez argumenty funkcji. A więc zapisałem to w ten sposób: #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
void los( int t[], int dlos ) { int licznik; srand( time( NULL ) ); dlos =(( rand() % 4 ) + 7 ); licznik = 0; do { t[ dlos ], licznik; licznik++; } while( licznik > 999 ); }
int main() { int t1[ 999 ]; los( t1, 999 ); int i = 0; do { cout << t1[ i ] << ", "; i++; } while( i > 999 ); return 0; } I w rezultacie chciałem sprawdzić, czy wypisze mi liczby losowo, przydzielone do tablic, w znaczeniu, że z każdego pola tablicy wypisze mi nową liczbę ale... Wypisuje mi tylko kilka cyfr obok siebie i przecinek, a nie żadne pokolei... więc w sumie nie wykonuje mojej zaplanowanej operacji... Nie rozumiem tego działu, może ktoś mi wytłumaczyć? |
|
malan |
» 2011-08-07 22:30:33 Przypisanie? :) /edit: Ale najpierw zamień ten zmienne pozycjami. |
|
dexiu03 Temat założony przez niniejszego użytkownika |
» 2011-08-07 22:33:48 Chciałem właśnie w tym momencie, aby funkcja wypełniała tablice. Czy mam usunąć z funkcji licznik? Teraz tak pomyślałem, że przecież w funcji main mam: int main() { int t1[ 999 ]; los( t1, 999 ); int i = 0; do { cout << t1[ i ] << ", "; i++; }
i moja pętla wypełnia każde pole w tablicy. albo już zbyt długo przy tym siedzę i prostych błędów nie widzę.. edit: jednak za długo siedzę bo podałem funkcję która ma wyświetlić.. aff.. edit: tak? : do { licznik, t[ dlos ],; licznik++; }
|
|
DejaVu |
» 2011-08-07 22:35:25 Tablice jednowymiarowe
Czy aby na pewno czytałeś dokładnie ten kurs? Czytałeś ze zrozumieniem jak się zapisuje wartości to tablicy? W rozdziale są przykłady...
/edit:
@up:
Tworzenie jednowymiarowych tablic zmiennych jest bardzo proste - wystarczy, że za deklaracją zwykłej zmiennej podamy liczbę elementów. |
Co w powyższym zdaniu jest niezrozumiałe? Nawiązuję do Twojego komentarza 'koszmar' :)
/edit2:
W rozdziale jest następujący przykład:
#include <iostream>
int main() { int liczby[ 3 ]; std::cout << "Podaj liczbe 1:"; std::cin >> liczby[ 0 ]; std::cout << "Podaj liczbe 2:"; std::cin >> liczby[ 1 ]; liczby[ 2 ] = 567; std::cout << "liczby[2] wynosi " << liczby[ 2 ] << std::endl; int suma = liczby[ 0 ] + liczby[ 1 ] + liczby[ 2 ]; std::cout << "Suma trzech liczb wynosi:" << suma << std::endl; return 0; }
Eksperymentowałeś z nim by zrozumieć o co chodzi z tablicami? Próbowałeś napisać to samo bez tablic i porównać kod? |
|
dexiu03 Temat założony przez niniejszego użytkownika |
» 2011-08-07 22:38:24 Tak, ale dlos to są liczby losowe 4-10, więc skoro mam: do { t[ dlos ], licznik; licznik++; } while( licznik > 999 );
to zamiast dlos powinien być licznik? to w jaki sposób on mi zapełni tablicę losowymi? edit: @up chyba nie rozumiem, cóż to ma wspólnego z moim przykładem? Błąd leży w funkji los czy w main? |
|
DejaVu |
» 2011-08-07 22:41:04 @up: Napisz jakbyś zapisał wylosowaną wartość do zwykłej zmiennej typu int. Czyli:
|
|
dexiu03 Temat założony przez niniejszego użytkownika |
» 2011-08-07 22:44:57 edit: poprawka kolejnosci: int liczba =( rand() % 4 ) + 7;
lub: int liczba; liczba =( rand() % 4 ) + 7;
o to chodzi? |
|
DejaVu |
» 2011-08-07 22:49:45 No dobra, a teraz wyobraź sobie, że liczba to tablica:
i chcesz aby do pierwszego elementu tej tablicy zapisać wylosowaną liczbę :) |
|
« 1 » 2 3 |