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

[Lekcja 21] Losowanie bez powtórzeń.... potrzebuje pomocy

Ostatnio zmodyfikowano 2013-08-24 14:33
Autor Wiadomość
PatraS
Temat założony przez niniejszego użytkownika
[Lekcja 21] Losowanie bez powtórzeń.... potrzebuje pomocy
» 2013-08-24 13:37:43
Witam mam problem z wylosowanymi liczbami gdyz program wypisuje mi na ekran dziwne liczby i nie moge doszukac sie błedu kodu.
Z góry Dziekuje za pomoc.


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

int wczytaj( int tablica[], int ile )
{
    do
    {
        std::cout << "podaj liczbe: ";
        std::cin >> tablica[ ile ];
        std::cin.clear();
        std::cin.sync();
        ile++;
       
    } while( ile < 3 );
   
}

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

int losuj()
{
    return( rand() % 3 );
}

int main()
{
    srand( time( 0 ) );
   
    int ile = 0;
    int tablica[ 3 ];
    int tablica2[ 2 ];
   
   
    wczytaj( tablica, ile );
   
    do
    {
        int liczba = losuj();
        if( czydobrze( liczba, tablica2, ile ) == false )
       
             tablica2[ ile ] = liczba;
       
        ile++;
       
    } while( ile < 2 );
   
    ile = 0;
   
    do
    {
        std::cout << tablica2[ ile ] << std::endl;
        ile++;
    } while( ile < 2 );
   
   
    return 0;
}
P-90846
PatraS
Temat założony przez niniejszego użytkownika
problem naprawiony
» 2013-08-24 14:33:10
juz sam spostrzegłem bledy:
-brakowalo nawiasu w funcji if....
-kod wyswietlał mi losowe liczby ,gdyz brakowalo wpisania tablicy jako przedzialu do wyswietlenia. poprawiona czesc kodu :

C/C++
do
{
    int liczba = losuj();
    if( czydobrze( liczba, tablica2, ile ) == false )
    { // tego brakowalo
        tablica2[ ile ] = liczba;
        ile++;
    } // tego brakowalo
   
   
} while( ile < 8 );

ile = 0;

do
{
    std::cout << tablica[ tablica2[ ile ] ] << std::endl; // tu byl blad
    ile++;
} while( ile < 8 );


return 0;
}
P-90847
« 1 »
  Strona 1 z 1