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

21. Losowanie bez powtórzeń - zadanie

Ostatnio zmodyfikowano 2017-11-07 16:20
Autor Wiadomość
pekfos
» 2017-11-05 15:43:36
To teraz zaimplementuj w C++ każdy z tych kroków, po kolei. Masz wylosować 20 liczb, więc pewnie będziesz je zapisywać do tablicy o takim rozmiarze i w tej tablicy będziesz sprawdzać, czy liczba była już wcześniej wylosowana.
P-166498
sair
Temat założony przez niniejszego użytkownika
» 2017-11-05 15:45:08
Czyli utworzyć jeszcze jedną tablice, tak?
P-166499
pekfos
» 2017-11-05 16:03:29
Gdzieś wyniki musisz zapisać.
P-166500
sair
Temat założony przez niniejszego użytkownika
» 2017-11-06 20:32:58
Napisałem coś takiego, ale niestety losuje z powtórzeniami ;/ Mógłby ktoś wskazać błąd? Dzięki z góry :)

C/C++
#include <conio.h>
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;

void wpisz( int tablica[] ) {
    int i = 0;
    do {
        cout << "Podaj " << i + 1 << " liczbe: ";
        cin >> tablica[ i ];
        i++;
    } while( i < 10 );
   
}

bool sprawdzenie( int tablica[], int a, int licznik ) {
    if( licznik <= 0 )
         return true;
   
    int i = 0;
    do {
        if( tablica[ i ] == tablica[ a ] )
             return false;
       
        i++;
    } while( i < licznik );
   
    return true;
}


int main() {
    srand( time( NULL ) );
    int tablica[ 10 ];
    int a;
    int licznik = 0;
    int nowa_tablica[ 8 ];
    wpisz( tablica );
   
    cout << endl << "Teraz wylosuje 8 sposrod liczb ktore podales!" << endl;
    do {
        a = rand() % 10;
        if( sprawdzenie( tablica, a, licznik ) == true )
        {
            nowa_tablica[ licznik ] = tablica[ a ];
            licznik++;
        }
       
       
    } while( licznik < 8 );
   
    int i = 0;
    cout << "Wylosowane liczby to: ";
    do {
        cout << nowa_tablica[ i ] << ", ";
        i++;
    } while( i < 8 );
   
    _getch();
    return 0;
}
P-166525
Luq
» 2017-11-06 22:54:28
C/C++
if( sprawdzenie( tablica, a, licznik ) == true )
Sprawdzasz nie tą tablicę co trzeba.
P-166535
sair
Temat założony przez niniejszego użytkownika
» 2017-11-07 15:49:16
wrzuciłem do sprawdzania obie tablice i nadal losuje z powtórzeniami :/
P-166555
YooSy
» 2017-11-07 16:01:22
Do funkcji masz przekazać nową tablicę, aktualny rozmiar nowej tablicy oraz wylosowaną liczbę,
a teraz przekazujesz (nawet po zmianie) nowa tablicę, wylosowany indeks (po co?) oraz aktualny licznik rozmiaru.
P-166556
sair
Temat założony przez niniejszego użytkownika
» 2017-11-07 16:01:22
Znalazłem bład! :)
if( licznik = 0 )
 
 a powinno być

if( licznik == 0 )

swoją drogą to można tak wartości przypisywać do zmiennych wewnątrz if'a? :O
P-166557
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona