Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Lekcja 21] zadanie 1 losowanie danych z tablicy

Ostatnio zmodyfikowano 2015-02-17 11:52
Autor Wiadomość
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.
C/C++
#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;
}
P-126679
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:
C/C++
int losujaca( int t[] ) {
    return t[ rand() % 3 ];
}
P-126680
kruczy
Temat założony przez niniejszego użytkownika
» 2015-02-17 11:52:46
dzięki, działa prawidłowo
P-126705
« 1 »
  Strona 1 z 1