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

Lekcja 21 zad. 2 powtórzenia,

Ostatnio zmodyfikowano 2013-09-11 19:47
Autor Wiadomość
Ven_64
Temat założony przez niniejszego użytkownika
Lekcja 21 zad. 2 powtórzenia,
» 2013-09-10 19:35:21
Witam, mam kolejny problem z zadaniem 2. A mianowicie program raz działa "dobrze", losując bez powtórzeń, a innym razem zdarzają się powtórzenia, a ja za nic w świecie błędu znaleźć nie potrafię. Z góry bardzo dziękuje za pomoc.
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;
bool sprawdz( int ilemamy, int sprawdzone[], int nspr )
{
    int x = 0;
    do
    {
        if( nspr == sprawdzone[ x ] )
             return false;
       
        x++;
    } while( x < ilemamy );
   
    return true;
}
int losuj()
{
    return( rand() % 10 ) + 0;
}
int main()
{
    srand( time( 0 ) );
    int liczby[ 10 ];
    int k = 0;
    do
    {
        cin >> liczby[ k ];
        k++;
    } while( k < 10 );
   
    int ktora[ 8 ];
    losuj();
    ktora[ 0 ] = losuj();
    int k2 = 0;
    int k3 = 1;
    int niesprawdzona;
    do
    {
        niesprawdzona = losuj();
        sprawdz( k2, ktora, niesprawdzona );
        if( sprawdz( k2, ktora, niesprawdzona ) == true )
        {
            ktora[ k3 ] = niesprawdzona;
            k2++;
            k3++;
        }
       
    } while( k2 < 7 );
   
    int q = 0;
    do
    {
        cout << liczby[ ktora[ q ] ] << " ";
        q++;
    } while( q < 8 );
   
    return 0;
}
Mały bałagan mam w kodzie.
P-91859
pekfos
» 2013-09-10 19:46:05
Po co tu k2, k3, q i ta linia?
C/C++
sprawdz( k2, ktora, niesprawdzona );
W sprawdzaniu pomijasz jeden element.
P-91861
Ven_64
Temat założony przez niniejszego użytkownika
» 2013-09-11 19:47:26
Wielkie dzięki za pomoc, już działa, poprawa:
} while( x <= ilemamy );
 
P-91928
« 1 »
  Strona 1 z 1