Sprawdzenie pracy domowej dział 17
Ostatnio zmodyfikowano 2016-09-14 16:50
silvergold Temat założony przez niniejszego użytkownika |
Sprawdzenie pracy domowej dział 17 » 2016-09-12 22:01:18 Witam, jeżeli możecie powiedzcie czy wszystko jest ok z programem. Według mnie działa prawidłowo, ale wole się upewnić, ponieważ jestem początkującym i dopiero się uczę ;) #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int wylosuj( int a, int b ) { int liczba =(( rand() % b ) + a ); return liczba; }
int main() { srand( time( NULL ) ); int start; cin >> start; int stop; cin >> stop; int ile = 20; do { cout << wylosuj( start, stop ) << endl; ile--; } while( ile > 0 ); system( "pause" ); return 0; }
|
|
Gibas11 |
» 2016-09-12 22:28:17 Wejście: 1 5
Wyjście: 5 5 [...] 5
No jak na moje oko to nie działa. :P |
|
carlosmay |
» 2016-09-12 23:55:28 Jeśli program ma losować liczby od start do stop, masz źle napisane obliczanie przedziału (tzn. wcale nie obliczasz). |
|
silvergold Temat założony przez niniejszego użytkownika |
» 2016-09-13 22:38:03 Wstawi ktoś prawidłowy kod? |
|
Gibas11 |
» 2016-09-13 23:54:30 return rand() %( b - a + 1 ) + a; (b-a+1) to poprawny przedział. |
|
silvergold Temat założony przez niniejszego użytkownika |
» 2016-09-14 15:58:22 Dlaczego tak? Nie widziałem tego wcześniej w kursie... Jaka jest różnica w działaniu tego kodu do tego który napisałem? |
|
mateczek |
» 2016-09-14 16:21:43 jeśli chcesz by otrzymać liczby z przedziału od 10 do 15, to losujesz z przedziału od 0 do 5 i dodajesz 10, wynik operaci "coś%6" jest reszta z dzielenia przez 6. Więc zwróci Ci zawsze liczbę z przedziału od <0 do 5> włącznie. To jest chyba jasne, że reszta z dzielenia przez "x" musi być zawsze mniejsza od "x"?? dzielnikModulo = stop - start + 1 = 15 - 10 + 1 = 6 wylosowanaLicza = rand() % dzielnikModulo + 10;
|
|
karambaHZP |
» 2016-09-14 16:50:44 Dlaczego tak? Nie widziałem tego wcześniej w kursie... |
Funkcja rand() losuje wartość z przedziału 0 do RAND_MAX, później wykonujesz na tej liczbie operacje z zakresu piątej klasy podstawówki (czyli wyznaczenie reszty z dzielenia i dodawanie). |
|
« 1 » |