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

Lekcja 21 - Zadanie 2

Ostatnio zmodyfikowano 2012-09-30 10:23
Autor Wiadomość
JacobMahlerPL
Temat założony przez niniejszego użytkownika
Lekcja 21 - Zadanie 2
» 2012-09-29 18:10:11
Witam, mam następujący problem: rozwiązałem zadanie 1 z lekcji o losowaniu bez powtórzeń, jednak po edycji kodu wylosowane liczby powtarzają się. Proszę o pomoc w znalezieniu błędu. Oto mój kod:

#include <iostream>
#include <cstdlib>
#include <ctime>

int podaj_liczby( int tablica[], int licznik )
{
    std::cout << "Podaj 10 liczb: ";
    do
    {
        std::cin >> tablica[ licznik ];
        licznik++;
    } while( licznik < 10 );
    return 0;
}

int losuj()
{
    return ( rand() % 10 ) + 0;
}

bool sprawdzenie( int liczba, int wylosowane[], int wylosowanych )
{
    if( wylosowanych == 0 )
        return true;

    int i = 0;
    do
    {
        if( wylosowane[ i ] == liczba )
             return false;

        i++;
    } while( i < wylosowanych );

    return true;
}

int main()
{
    srand( time( NULL ) );
    int tablica[ 10 ];
    int licznik = 0;
    podaj_liczby( tablica, licznik );
    int wylosowane[ 8 ];
    int wylosowanych = 0;
    do
    {
        int liczba = losuj();
        if( sprawdzenie( liczba, wylosowane, wylosowanych ) == true )
        {
            wylosowane[ wylosowanych ] = tablica[ liczba ];
            wylosowanych++;
        }
    } while( wylosowanych < 8 );

    wylosowanych = 0;
    std::cout << "Wylosowane liczby to: ";
    do
    {
        std::cout << wylosowane[ wylosowanych ] << std::endl;
        wylosowanych++;
    } while( wylosowanych < 8 );
    return 0;
}
P-65747
jsc
» 2012-09-29 19:51:59
A czym się on objawia?
P-65756
JacobMahlerPL
Temat założony przez niniejszego użytkownika
» 2012-09-30 10:23:00
Tym, że liczby są losowane, ale powtarzają się.
P-65781
« 1 »
  Strona 1 z 1