[Lekcja 21] zadanie 1 losowanie danych z tablicy
Ostatnio zmodyfikowano 2015-02-17 11:52
kruczy Temat założony przez niniejszego użytkownika |
[Lekcja 21] zadanie 1 losowanie danych z tablicy » 2015-02-16 19:43:39 Witam, Jestem w połowie zadania 1 , napisałem pętle wczytującą liczby z przedziału od 1 do 100 do tablicy i stworzyłem funkcję losującą z tablicy, jednak funkcja ta nie działa prawidłowo tzn. nie zawsze losuje liczbę spośród podanych. Nie wiem dlaczego, proszę o pomoc bardziej doświadczonych. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int losujaca( int t[] ) { return( rand() % t[ 2 ] ) + t[ 0 ]; }
int main() { srand( time( NULL ) ); int podane[ 3 ]; cout << "Podaj trzy liczby z przedzialu od 1 do 100: " << endl; int licznik = 0; do { cin >> podane[ licznik ]; if( podane[ licznik ] < 1 || podane[ licznik ] > 100 ) { cout << "Nieprawidlowa liczba. Podaj jeszcze raz: " << endl; licznik--; } licznik++; } while( licznik < 3 ); int wynik = losujaca( podane ); cout << wynik; return 0; }
|
|
Fireho |
» 2015-02-16 19:50:35 ( rand() % t[ 2 ] ) + t[ 0 Co robi to wyrażenie? Oblicza resztę z dzielenia losowej liczby przez trzeci element tablicy i dodaje pierwszy element tablicy. Oczywiście powinna losować element tablicy, czyli: t[ rand() % 3 ] To dodanie pierwszego elementu niepotrzebne, gotowa funkcja: int losujaca( int t[] ) { return t[ rand() % 3 ]; } |
|
kruczy Temat założony przez niniejszego użytkownika |
» 2015-02-17 11:52:46 dzięki, działa prawidłowo |
|
« 1 » |