Zadanie domowe nr.1 rodział 21
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Zadanie domowe nr.1 rodział 21

AutorWiadomość
Temat założony przez niniejszego użytkownika
Zadanie domowe nr.1 rodział 21
» 2018-09-22 22:49:40
Witam,

mam drobny problem  w zadaniu a mianowicie program mi losuje 2 różne od siebie liczby ale rzecz w tym ile razy bym nie wklepywał liczby to jestem pewien że zawsze losuje 2 pierwsze z tabeli 3 elementowej a tu chodzi o różne konfiguracje tych kluczy z tabeli 1 2, 1 3, 2,3 w różnej kolejności... Niestety nie wiem gdzie tkwi błąd a podejrzewam że jest to mały detal ;)
Dzięki za naprowadzenie do rozwiązania :)


C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

bool sprawdz( int tab[], int tabb[], int loss, int liczba )
{
    if( liczba <= 0 )
         return false;
   
    int i = 0;
    do
    {
        if( tabb[ i ] == tab[ loss ] )
             return true;
       
        i++;
    } while( i < liczba );
   
   
    return false;
}

void wczytaj( int tab[], int aa, int liczba )
{
    int i = 0;
    do
    {
        cin >> aa;
        tab[ i ] = aa;
        i++;
        liczba++;
    } while( liczba < 3 );
   
}
int losuj()
{
    return rand() % 3 + 0;
}



int main()
{
    srand( time( NULL ) );
    int tablica[ 3 ];
    int tablicalos[ 2 ];
    int licznik = 0;
    int a;
    cout << "Podaj 3 liczby:  " << endl;
   
    wczytaj( tablica, a, licznik );
    int i = 0;
   
    int los = losuj();
   
    licznik = 0;
    i = 0;
    do
    {
        if( sprawdz( tablica, tablicalos, los, licznik ) == false )
        {
            tablicalos[ licznik ] = tablica[ los ];
            licznik++;
        }
        i++;
    } while( i < 2 );
   
   
   
    cout << "Wczytane liczby do tablicy to:   " << endl;
    do
    {
        cout << tablicalos[ i ] << endl;
        i++;
        licznik++;
    } while( licznik < 3 );
   
   
    return 0;
}
[/i]
P-172383
» 2018-09-22 23:54:05
losuj() jest wywoływane tylko raz.
P-172384
Temat założony przez niniejszego użytkownika
» 2018-09-23 01:09:56
Dziękuję za szybką odpowiedź jednak próbowałem na różne sposoby w różne miejsca wywołać losuj() ale głowie się i nie mogę nic wymyśleć... Spróbowałem napisać jeszcze oddzielną funkcje sprawdzającą dla drugiej tablicy ale to też bez sensu, zamieniłem tą część kodu:
C/C++
if( sprawdz( tablica, tablicalos, los, licznik ) == false )
{
    int losowanko = tablica[ los ];
    tablicalos[ licznik ] = losowanko;
    licznik++;
}
i++;
} while( i < 3 );

to teraz losuje mi 2 ostatnie liczby z tabeli 3 elementowej :) Czyli podejrzewam że gdzieś tu jest błąd?
P-172385
» 2018-09-23 09:28:16
Pętla ma się wykonywać nie 2 razy, tylko aż wylosujesz 2 liczby. Losowanie ma być w pętli.
P-172386
Zadanie
» 2018-09-23 15:10:17
Wojcioo a podaj całą treść zadania to postaram się pomóc :)
P-172387
Temat założony przez niniejszego użytkownika
» 2018-09-23 16:07:28
Rozwiązane, dziękuję ślicznie Pekfos za naprowadzenie do rozwiązania i nie dawanie gotowych rozwiązań:)
P-172388
« 1 »
 Strona 1 z 1