obi2exe Temat założony przez niniejszego użytkownika |
zadanie z poradnika » 2013-06-14 21:54:10 Witam. Piszę program, który ma wylosować liczbę z przedziału wybranego przez użytkownika. Ma to wyglądać tak: Użytkownik podaje liczbę, od której zaczynamy losowanie, następnie ma podać liczbę, która jest przedziałem tego losowania. Dlaczego to nie działa? Jak to naprawić? #include <iostream> #include <cstdlib> #include <ctime> using namespace std; float losowanie( int zacznij, int skoncz ) { srand( time( NULL ) ); int losowanie; losowanie =( rand() % zacznij ) + skoncz; cout << losowanie; } int main() { int zacznij, skoncz; cout << "Podaj liczbe od ktorej zaczynamy losowanie: "; cin >> zacznij; cout << "Podaj ilosc przedzial na ktorym mozna losowac: "; cin >> skoncz; cout << "Wynik losowania to" << losowanie( zacznij, skoncz ); return 0; } |
|
MrPoxipol |
» 2013-06-14 22:03:08 rand() służy do losowania liczb całkowitych, więc funkcja musi zwracać liczbę całkowitą, a nie floatw funkcji do losowania, nic nie zwracasz. Losowanie powinno wyglądać tak: rand() % ile_liczb + pierwsza_liczba @down Szybszy :P |
|
m4tx |
» 2013-06-14 22:04:38 A dlaczego nie napisałeś co nie działa? :) Zadeklarowałeś, że funkcja losowanie() zwróci floata - problem w tym, że nie zwraca nic. Dodatkowo robisz takiego podwójnego couta, bo próbujesz wypisać wynik funkcji losowanie() , chociaż funkcja nic w praktyce nie zwraca, za to próbuje wypisać ten wynik na standardowe wyjście. Dodatkowo wydaje mi się, że ta linijka: losowanie =( rand() % zacznij ) + skoncz; powinna wyglądać tak: losowanie = rand() % skoncz + zacznij; , lub też losowanie = rand() %( skoncz - zacznij ) + zacznij; - generalnie ciężko się domyśleć o co Ci tutaj chodziło. |
|
obi2exe Temat założony przez niniejszego użytkownika |
» 2013-06-14 22:12:57 Jak to funkcja nic nie zwraca? Przecież losuje i wypisuje co wylosowała. Czym się różni funkcja, która zwraca i nie zwraca? Kompletnie tego nie rozumiem, ale i w poradniku nie jest to opisane. Jak by ktoś mógł przystępnym sposobem wytłumaczyć bardzo by mi to pomógł :) |
|
m4tx |
» 2013-06-14 22:18:52 |
|
obi2exe Temat założony przez niniejszego użytkownika |
» 2013-06-14 22:22:55 Ok. Zapoznam się z lekturą i w razie problemów jutro napiszę. |
|
obi2exe Temat założony przez niniejszego użytkownika |
» 2013-06-14 22:33:34 Ani słowa o tym czym funkcja zwracająca wartość jest. Brak przykładów, nic nie widać. Jeżeli ktoś potrafi łopatologicznie i dobitnie wytłumaczyć bardzo proszę :) |
|
pekfos |
» 2013-06-15 00:14:51 Funkcja zwracająca wartość to funkcja, która zwraca wartość: Wywołanie funkcji daje wartość, jaką ta funkcja zwróciła: |
|
« 1 » 2 |