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

[Rozdział 21] - Losowanie bez powtórzeń.

Ostatnio zmodyfikowano 2014-03-17 16:09
Autor Wiadomość
snoozee
Temat założony przez niniejszego użytkownika
[Rozdział 21] - Losowanie bez powtórzeń.
» 2014-03-17 01:32:08
Cześć.
Mam kolejny problem. Zadanie polega na wprowadzeniu 10 liczb a następnie wylosowaniu 7 z nich (niepowtarzających się!!!). Wszystko już mam, jednak wylosowane liczby się powtarzają. Nie wiem czemu. Mógłby ktoś mi pomóc? Pozdrawiam.

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void wprowadzenieLiczb( int t[] )
{
    cout << "Wprowadz 10 liczb, kazda zatwierdz ENTER. " << endl;
    int i = 0;
    do
    {
        cin >> t[ i ];
        i++;
    } while( i < 10 );
   
}

bool sprawdzenie( int liczba, int t[], int ile )
{
    if( ile <= 0 )
         return false;
   
    int i = 0;
    do
    {
        if( t[ i ] == liczba );
       
        return true;
       
        i++;
    } while( i < ile );
   
    return false;
}

void wypisanieLiczb( int t[] )
{
    cout << "7 wylosowanych liczb to: " << endl;
    int i = 0;
    do
    {
        cout << i << ". " << t[ i ] << endl;
        i++;
    } while( i < 7 );
   
}
int losowanie( int t[] )
{
    return t[ rand() % 10 ];
}

int main()
{
    srand( time( NULL ) );
   
    int tablicaPodanychLiczb[ 10 ];
    int tablicaWylosowanychLiczb[ 7 ];
   
    int ile = 0;
    int liczba;
    wprowadzenieLiczb( tablicaPodanychLiczb ); //ok!
   
    do
    {
        liczba = losowanie( tablicaPodanychLiczb ); //OK
        if( sprawdzenie( liczba, tablicaPodanychLiczb, ile ) == false );
       
        {
            tablicaWylosowanychLiczb[ ile ] = liczba;
            ile++;
        }
    } while( ile < 7 );
   
   
    wypisanieLiczb( tablicaWylosowanychLiczb );
    system( "Pause" );
}
 
P-106614
leon_w
» 2014-03-17 16:09:04
1.Do funkcji sprawdzającej, wysyłaj tablicę z wylosowanymi liczbami a nie z podanymi.
2. Po if() nie daje się średnika.
P-106637
« 1 »
  Strona 1 z 1