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

Losowanie bez powtórzeń

Ostatnio zmodyfikowano 2014-08-07 22:58
Autor Wiadomość
mrscresh
Temat założony przez niniejszego użytkownika
Losowanie bez powtórzeń
» 2014-08-07 12:07:01
Witam,
Przerabiając kurs natknąłem się na temat Losowanie bez powtórzeń.
Oczywiście przed przeczytaniem podanego sposobu na stworzenie takiego losowania chciałem sam trochę pokombinować.
Niestety przy wywoływaniu funkcji w warunku if wywala mi błąd. Gdzie zawiniłem? ;)

//Edit: Kod poniżej został już poprawiony ;)
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

bool niebylo( int tabela[], int licz )
{
    if( licz > 0 ) {
        int licz2 = licz;
        do {
            licz2--;
            if( tabela[ licz ] == tabela[ licz2 ] )
                 return false;
           
        } while( licz2 > 0 );
       
        return true;
    }
    else
         return true;
   
}

int main() {
    srand( time( NULL ) );
    int los[ 5 ];
    int licznik = 0;
   
    do {
       
        los[ licznik ] =( std::rand() % 10 ) + 1;
        if( niebylo( los, licznik ) == true ) {
            licznik++; }
       
    } while( licznik < 5 );
   
    licznik = 0;
    std::cout << "wylosowane liczby to:" << std::endl;
   
    do {
        std::cout << los[ licznik ] << std::endl;
        licznik++;
    } while( licznik < 5 );
   
}
P-115157
Jacob99
» 2014-08-07 12:08:30
No i w związku z tym co?
P-115158
1234Marcineq
» 2014-08-07 12:18:24
zle wywołujesz funkcję niebylo.

powinno byc :

if(niebylo(los,licznik)==true)  // bez nawiasów kwadratowych
{
 ....
}
P-115159
mrscresh
Temat założony przez niniejszego użytkownika
» 2014-08-07 12:26:11
Zastosowałem to co powiedziałeś 1234Marcineq, skompilowało się ale nie działa tak jak trzeba - w konsoli nic się nie dzije.
P-115161
1234Marcineq
» 2014-08-07 12:38:35
bo są inne błędy.
P-115163
mrscresh
Temat założony przez niniejszego użytkownika
» 2014-08-07 18:03:57
Może mi zatem ktoś powiedzieć gdzie tkwi błąd?
P-115178
Mateus.
» 2014-08-07 20:12:10
C/C++
if( tabela[ licz ] == tabela[ licz2 ] );

return false;
Co ten
if
 robi, skoro zaraz za nim stoi
;
?
P-115184
michal11
» 2014-08-07 20:16:25
Ja bym na twoim miejscu zmienił te wszystkie do while na fory i ten kod jest na tyle prosty, że możesz go zdebugować i sam znajdziesz błędy.
P-115186
« 1 » 2
  Strona 1 z 2 Następna strona