Funkcja + losowanie liczby.
Ostatnio zmodyfikowano 2013-04-08 21:59
esiek24 Temat założony przez niniejszego użytkownika |
Funkcja + losowanie liczby. » 2013-04-07 23:22:31 Witam. Mam wielki problem , który dla was pewnie bd błahostką. Mianowicie chce napisać program który bd mi losował dowolną liczbę z przedziału od 1 do 50 do momentu aż suma tych liczb wyniesie 250. Pętla zakończy się wtedy. Prosił bym o jakąś pomoc od podstaw lub wytłumaczenie ponieważ nie mam problemu z losowaniem tych liczb tylko mój problem z zaczyna się z chwilą wstawiania tego do pętli.
Z góry dzięki:) |
|
usmiech |
» 2013-04-07 23:29:53 << removed >> |
|
Berux |
» 2013-04-08 14:35:58 Napiszę ci tutaj co powinieneś zrobić: 1.na początku funkcji main umieszczasz: srand( time( NULL ) ); 2.tworzysz sobie zmienną o nazwie wynik typu short(nie trzeba używać int, bo short wystarczy) 3.tworzysz sobie pętlę do...while, której warunkiem będzie: wynik <= 250 4.tworzysz sobie obiekt o nazwie liczba typu short(nie int, żebyś zaoszczędził pamięć w komputerze) 5.losujesz liczbę i przypisujesz ją do zmiennej liczba - liczba =( rand() % 50 ) + 1; 6.dodajesz wartość zmiennej liczba do obiektu wynik 7.sprawdzasz czy obiekt wynik nie jest większy niż 250 true: odejmujesz wartość zmiennej liczba od zmiennej wynik i zakańczasz pętlę instrukcją break; Mam nadzieję, że to dobre rozwiązanie :) |
|
Bajt |
» 2013-04-08 15:21:37 Użycie operacji continue nie jest dobrym rozwiązaniem. Z pewnością autor postu nie doszedł jeszcze do tej operacji, a i wogóle programiści rzadko używają tej instrukcji albowiem jest ona mało czytelna. Możnaby to tak zrobić: unsigned int liczba =( rand() % 50 ) + 1; unsgined int wczytajLiczbe;
if( wczytajLiczbe == liczba ) cout << "Wygrales!" << endl; else cout << "Probuj dalej!" << endl;
|
|
Berux |
» 2013-04-08 15:26:04 Racja. W ogóle to nie potrzebnie to napisałem, bo obeszłoby się bez tego - zaraz poprawię. Tylko się zastanawiam czy nie będzie potrzebne tu użycie break; - gdy warunek jest prawdziwy. Chodzi o to, że została wprowadzona zmiana i już dalej nie powinna się pętla wykonywać. @up tylko, że autorowi nie chodzi o program-zgadywankę. |
|
Bajt |
» 2013-04-08 15:30:25 No tak, można by to zrobić break'iem, jednak sposób który ja wpisałem jest prostszy. Jeżeli liczba nie jest równa 250 to pętla dalej się wykonuje, jeżeli jednak jest inna od 250 to przerywa i kończy program. |
|
Berux |
» 2013-04-08 15:33:12 Ale podałeś nie ten kod :) Zdaje się, że autorowi chodziło o sumowanie ze sobą wylosowanych liczb i sprawdzanie czy ta suma nie jest większa niż 250 |
|
Bajt |
» 2013-04-08 16:29:48 Aha, no cóż. Na forum jest już tak dużo tematów o losowaniu liczb, że po prostu nie przeczytalem tego posta do końca. W każdym razie: to co napisałeś u góry moze miec zastosowanie w praktyce jednak lepiej pomijac instrukcję continue. o wiele prościej użyć breaka |
|
« 1 » 2 |