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ść
YooSy
» 2017-11-07 16:06:16
P-166558
sair
Temat założony przez niniejszego użytkownika
» 2017-11-07 16:07:08
wewnątrz funkcji sprawdzenie

C/C++
bool sprawdzenie( int nowa_tablica[], int tablica[], int a, int licznik ) {
    if( licznik == 0 )
         return true;
   
    int i = 0;
    do {
        if( nowa_tablica[ i ] == tablica[ a ] )
             return false;
       
        i++;
    } while( i < licznik );
   
    return true;
}
P-166559
YooSy
» 2017-11-07 16:09:37
Przecież tam było:
C/C++
if( licznik <= 0 )
     return true;
Taki kod wkleiłeś.
I taki kod jest poprawniejszy.
P-166560
sair
Temat założony przez niniejszego użytkownika
» 2017-11-07 16:12:00
Później jeszcze kombinowałem i próbowałem różnych rzeczy a to przeoczyłem :)

W każdym razie dziękuję za pomoc :)

P-166561
YooSy
» 2017-11-07 16:15:31
Twój poprzedni kod wymaga dwóch niewielkich zmian, aby działał prawidłowo.
Argumenty w wywołaniu funkcji sprawdzającej i w samej funkcji.
Podpowiedz jest wcześniej (jako drugi argument przekaż wylosowaną liczbę zamiast wylosowanego indeksu
i zmień sprawdzenie w funkcji).
P-166562
sair
Temat założony przez niniejszego użytkownika
» 2017-11-07 16:20:07
teraz poprawnie?

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 nowa_tablica[], int liczba, int licznik ) {
    if( licznik <= 0 )
         return true;
   
    int i = 0;
    do {
        if( nowa_tablica[ i ] == liczba )
             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 ];
    int liczba;
    wpisz( tablica );
   
    cout << endl << "Teraz wylosuje 8 sposrod liczb ktore podales!" << endl;
    do {
        a = rand() % 10;
        liczba = tablica[ a ];
        if( sprawdzenie( nowa_tablica, liczba, licznik ) == true )
        {
            nowa_tablica[ licznik ] = liczba;
            licznik++;
        }
       
       
    } while( licznik < 8 );
   
    int i = 0;
    cout << "Wylosowane liczby to: ";
    do {
        cout << nowa_tablica[ i ] << ", ";
        i++;
    } while( i < 8 );
   
    _getch();
    return 0;
}
P-166564
1 2 « 3 »
Poprzednia strona Strona 3 z 3