[Lekcja 17] Zadanie 2,Nie losuje mi w przedziale 50-60
Ostatnio zmodyfikowano 2012-02-01 09:45
drewnoo Temat założony przez niniejszego użytkownika |
[Lekcja 17] Zadanie 2,Nie losuje mi w przedziale 50-60 » 2012-01-31 20:58:33 #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int wczytajlosowanie() { int liczba; liczba =( rand() % 40 ) + 30; } int main() { srand( time( NULL ) ); int wybor; do { cout << "Wylosowana liczba: " << wczytajlosowanie() << endl; cout << "Czy sie wszystko zgadza?\n1.Tak\n2.Powtorz - "; cin >> wybor; switch( wybor ) { case 1: cout << "No to Koniec:)"; break; case 2: cout << "Powtarzamy:)" << endl; break; } } while( wybor != 1 ); return 0; }
Mam problem otóż nie losuje mi w przedziale od 50 do 60. losuje mi nawet do 108.Więc jak zrobić,żeby losowało.A mam drugie pytanie: Czy wykorzystanie funkcji w tym kodzie jest dobre,czy mogłoby być lepsze? Co do pierwszego pytania int wylosowana_liczba =( rand() % ile_liczb_w_przedziale ) + startowa_liczba; Z lekcji o pseudolosowych liczbach calkowitych ustawia sie w powyzszy sposob do ilu moze losowac i od ilu moze loswac ja mam tak: liczba = (rand() % 50) + 60; Czyli powinno losowac do 60 a liczba poczatkowa powinno byc 50.Więc czego mi losuje do 108? Podziekowania odrazu dla tych ktorzy mi pomoga;D |
|
jsc |
» 2012-01-31 21:19:58 Zrobiłem parę losowań i nigdy nie przekroczyłem 70. |
|
drewnoo Temat założony przez niniejszego użytkownika |
» 2012-01-31 21:26:51 Mi natomiast wypisuje po 80,95,73 itd. a ma losowac od 50 do 60 więc...?
Bo chyba kompilator rozumie to wywołanie funkcji ze liczb w przedziale ma byc (losowanie % 50) + 50 (naprzyklad) a nie traktuje tych nawiasow i wykonuje dzialanie liczb w przedziale 50+50 czyli razem 100... Opuszczajac nawiasy(bo myslalem tak ze zadziala) nic nie dalo:/
bo podstawilem w liczbie przedzialow i w liczbie startowej 30 i 40 zeby bylo mniej zeby chociaz miescilo sie w granicach 50-70,ale chce zeby bylo tylko 50-60 |
|
jsc |
» 2012-01-31 21:34:06 Zaraz! Jakie liczby masz w rand, w kodzie który kompilujesz?
W wklejonym kodzie masz zupełnie co innego niż to na co się powołujesz w tekście posta. |
|
drewnoo Temat założony przez niniejszego użytkownika |
» 2012-01-31 22:03:38 No bo skoro jak wpisalem tam 50,60 i mi losowalo do 110 to wpisalem np. 30,40 albo 30,30 zeby losowalo do 60 ale losuje wtedy od 30 |
|
jsc |
» 2012-01-31 22:16:20 Zdecyduj się na jakąś parę powiedz czego od niej oczekujesz. |
|
SeaMonster131 |
» 2012-01-31 22:22:41 Losowanie między 50 a 60 włącznie? Startowa liczba to 50, liczb w przedziale jest 11, bo rand losuje liczby od 0 :) 50+(11-1) = 60; czyli przedział liczb wynosi 50...60. |
|
DejaVu |
» 2012-02-01 00:25:16 |
|
« 1 » 2 |