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

Rozdział 21 losowanie bez powtorzen - puste okno programu

Ostatnio zmodyfikowano 2018-10-10 23:25
Autor Wiadomość
hbrodaty
Temat założony przez niniejszego użytkownika
Rozdział 21 losowanie bez powtorzen - puste okno programu
» 2018-10-10 22:12:09
Hej,
Potrzebuje pomocy bo nie wiem czy osleplem czy to poczatki schizofrenii :)
Pisalem na wlasna reke kod dla losowania bez powtorzen zgodnie z tym co w rozdziale 21. Po napisaniu kodu i uruchomieniu programu otrzymywalem czarne puste okienko konsoli. Uznalem ze pewnie popelnilem bledy i zaczalem dostosowywac to co napisalem do kodu podanego w rozdziale. Zmienilem praktycznie caly swoj kod tak ze stal sie niemal wierna kopia tego z rozdzialu (poprzestawialem nawet kolejnosc funkcji wylosuj i bool czybylawylosowana i nazwalem tak samo zmienne zeby miec pewnosc ze kopiuje dokladnie oraz wrzucilem wyswietlanie liczb do funkcji main bo wczesniej mialem to w osobnej funkcji) ale problem pozostal i wyswietla mi sie puste okienko. Żeby sprawdzic czy program w ogole cos robi wrzucilem
cout << liczba << endl;
zaraz za
int liczba = wylosuj();
w petli do while i faktycznie wtedy widac ze program losuje i wyswietla liczby z podanego zakresu ale robi to bez konca czyli z powtorzeniami. Nie wiem jednak co ostatecznie jest nie tak. Oto kod juz po zmianach i upodobnieniu do tego z kursu:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

bool czybylawylosowana( int iliczba, int tab[], int ile )
{
    if( ile <= 0 )
         return false;
   
    int i = 0;
   
    do
    {
        if( tab[ i ] == iliczba );
       
        return true;
        i++; //else
    } while( i < ile );
   
    return false;
}

int wylosuj()
{
    return( rand() % 10 ) + 1;
}

int main()
{
    srand( time( 0 ) );
    int wylosowane[ 5 ];
    int wylosowanych = 0;
    do
    {
        int liczba = wylosuj();
        if( czybylawylosowana( liczba, wylosowane, wylosowanych ) == false )
        {
            wylosowane[ wylosowanych ] = liczba;
            wylosowanych++;
        }
    } while( wylosowanych < 5 );
   
    wylosowanych = 0;
    do
    {
        cout << wylosowane[ wylosowanych ] << endl;
        wylosowanych++;
    } while( wylosowanych < 5 );
   
    return 0;
}
P-172584
pekfos
» 2018-10-10 22:28:43
C/C++
if( tab[ i ] == iliczba );

return true;
Średnik.
P-172585
hbrodaty
Temat założony przez niniejszego użytkownika
pekfos
» 2018-10-10 23:25:38
wielkie dzieki, sprawdzalem kod x razy i juz bym tego nie znalazl.
Dzieki tez za poprawienie formatowania wklejonego kodu.
P-172587
« 1 »
  Strona 1 z 1