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

Losowanie bez powtorzen

Ostatnio zmodyfikowano 2014-12-04 10:17
Autor Wiadomość
Vanilka
Temat założony przez niniejszego użytkownika
Losowanie bez powtorzen
» 2014-12-04 08:12:28
Witam, mam maly problem.
program teoretycznie dziala. Problemem jest  ostatnie losowanie. Podejzewam ze  blad lezy gdzies w inkrementacji. Moglibyscie zerknac na moj kod.

Wiem ze widzac go wielu z was pewnie opluje monitor.. gdyz jest on pisane jak przez debila, ale coz.. jestem n00bem i ucze sie dopiero :D

PS. te wstawki typu "wartosc powtorzenia" to bylo po to abym mogla zlokalizowac blad, gdyz naprawde dlugo sie z tym meczylam

@EDIT:
Zauwayzlam ze liczby sa losowane prawidlowo i zapisywane do talicy prawidlowo. Problem pojawia sie przy wyswietleniu tablicy. Gdy skopiuje fragment odpowiedzialny za wyswietlenie wartosci tablicy to za kazdym razem 2 ostatnie lub przedostatnie  wartosci sa powtorzone. A jesli fm wyswietlanie  "na sztywno" czyli nie w petli tlyko 8 razy  wklepie cout.. to wyswietla sie prawidlowo. Jak sobie z tym poradzic ?



void losowanie()
{


    cout << "bede losowac miejsc "  << ilosc_miejsc << endl;
    cout << "bede losowac sposrod " << ilosc_cyfr << " cyfr" << endl;


    int tablica_kodow[0][ilosc_miejsc];
    int a = 0;
    int b = 0;
    int c;

        for (c = 0; c < ilosc_miejsc; c++ )
        {
            tablica_kodow[a][c] = 0;
        };
    int wylosowana_lb;
    bool powtorzenie = 0;
    for (b = 0; b < ilosc_miejsc; b++)
        {

            wylosowana_lb = (rand() %ilosc_cyfr) + 1;
            cout << "wylosowalem" <<  wylosowana_lb << endl;
        c = 0;
        do
        {

            if (wylosowana_lb == tablica_kodow[a][c])
            {
            powtorzenie = 1;
            cout << "wartosc pierwszego powtorzenia :  " << powtorzenie << endl;
            } else {

            powtorzenie = 0;
            cout << "wartosc drugiego  powtorzenia :  " << powtorzenie << endl;
             c++;
            }
        } while (c <ilosc_miejsc && powtorzenie == 0);

            cout << "wartosc tego powtorzenia :  " << powtorzenie << endl;
   
    if(powtorzenie == 0)
        {
        tablica_kodow[a][b] = wylosowana_lb;
        }
    else if (powtorzenie == 1)
        {
        b--;
        }
};



    for (b = 0; b < ilosc_miejsc; b++)
    {
   cout <<"Wylosowana liczba to " <<  tablica_kodow[a][b] << endl;
    }
    cin.get();


}

P-122151
Monika90
» 2014-12-04 09:25:45
int tablica_kodow[ 0 ][ ilosc_miejsc ];

Taka deklaracja jest bez sensu, wymiar tablicy nie może być równy 0.
Jak zmienię 0 na 1, to dostaję taki wynik:

bede losowac miejsc 5
bede losowac sposrod 7 cyfr
wylosowalem7
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc tego powtorzenia :  0
wylosowalem2
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc tego powtorzenia :  0
wylosowalem7
wartosc pierwszego powtorzenia :  1
wartosc tego powtorzenia :  1
wylosowalem6
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc tego powtorzenia :  0
wylosowalem4
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc tego powtorzenia :  0
wylosowalem3
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc drugiego  powtorzenia :  0
wartosc tego powtorzenia :  0
Wylosowana liczba to 7
Wylosowana liczba to 2
Wylosowana liczba to 6
Wylosowana liczba to 4
Wylosowana liczba to 3
Czy o to Ci chodziło?
P-122155
Vanilka
Temat założony przez niniejszego użytkownika
» 2014-12-04 10:17:38
ło matko... ale ze mnie blondi.. nawet tego nie zauwayzlam :)
dzieki..  zawsze kurde zrobie blad w jakies malej pierdolce.. a potem mnie szlag trafia przy szukaniu..
P-122157
« 1 »
  Strona 1 z 1