[Lekcja 17] Chwila zwątpienia
Ostatnio zmodyfikowano 2011-09-17 16:47
Druzil Temat założony przez niniejszego użytkownika |
[Lekcja 17] Chwila zwątpienia » 2011-09-17 16:29:17 Tak konkretniej chodzi o zadanie domowe: "Napisz funkcję, która losuje liczbę z przedziału od 50 do 60 włącznie. Wywołaj funkcję kilka razy (wypisz wylosowane wartości na ekran) w celu przetestowania czy działa ona poprawnie." Napisałem coś takiego: #include <iostream> #include <cstdlib> #include <ctime>
void losowanie() { int los = 0; srand( time( NULL ) ); los =( rand() % 11 ) + 50; std::cout << los << std::endl; } int main() { char znak; int z; std::cout << losowanie << std::endl; do { std::cout << "Czy losowac ponownie? (t/n) "; std::cin >> znak; switch( znak ) { case 't': std::cout << losowanie << std::endl; z = 1; break; case 'n': z = 0; break; default: std::cout << "Zly znak!" << std::endl; z = 1; break; } std::cin.clear(); std::cin.sync(); } while( z != 0 ); } I program niby działa, no ale za każdym razem "losuje" tylko i wyłącznie "1". Martwi mnie to tym bardziej, że gdy napisałem ten sam program bez użycia funkcji (tylko przeniosłem kod z funkcji losowanie do main) okazało się, że działa tak jak powinien... Mógłby mi ktoś wytknąć co robię nie tak? |
|
imralav |
» 2011-09-17 16:38:19 Gdy wywołujesz funkcję losowanie() nie rób tego w cout << . Do tego przy wywoływaniu funkcji wpisuje się nawiasy okrągłe, których w Twoim kodzie brakuje. |
|
m4tx |
» 2011-09-17 16:40:12 std::cout << losowanie << std::endl; Czyżby przyzwyczajenia z Pascala? (czy czegoś podobnego?) Ty nie wywołujesz funkcji tutaj. Dopisz (). void losowanie() Void, ta? Hm... Ciekawe... A potem chcesz wypisać zwróconą wartość... |
|
Druzil Temat założony przez niniejszego użytkownika |
» 2011-09-17 16:47:40 Oj głupi ja głupi... Już działa, dzięki xD Bwt. Ta funkcja nigdy nie miała niczego zwracać :P Poprawione: #include <iostream> #include <cstdlib> #include <ctime>
void losowanie() { int los = 0; srand( time( NULL ) ); los =( rand() % 11 ) + 50; std::cout << los << std::endl; } int main() { char znak; int z; losowanie(); do { std::cout << "Czy losowac ponownie? (t/n) "; std::cin >> znak; switch( znak ) { case 't': losowanie(); z = 1; break; case 'n': z = 0; break; default: std::cout << "Zly znak!" << std::endl; z = 1; break; } std::cin.clear(); std::cin.sync(); } whi |
|
« 1 » |