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

Losowanie bez powtorzen - zadanie

Ostatnio zmodyfikowano 2015-10-17 02:46
Autor Wiadomość
mlody1312
Temat założony przez niniejszego użytkownika
Losowanie bez powtorzen - zadanie
» 2015-10-17 02:46:20
Witam! Próbuje rozwiązać zadanie z losowania liczb bez powtórzeń. Nieco sobie je zmodyfikowałem, użytkownik podaje ilość liczb do wylosowania. Wszystko działa dopóki program nie dojdzie do wypisywania wylosowanych liczb z tablicy. Oto mój kod:
C/C++
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;

//Losuje liczbe i sprawdzam czy jest ona w tablicy ktora uzupelnil uzytkownik
bool losuj( int t[], int iledolosowania ) {
    int i = 0, x = 0, losowanych = 5;
    int losowana =( rand() % 15 ) + 1;
    if( x < losowanych ) {
        do {
            if( losowana = t[ i ] )
                 return false;
           
            i++;
        } while( i < iledolosowania );
       
        x++;
    }
    return true;
}

int wczytaj( int t[], int iledolosowania ) {
    int i = 0;
    do {
        cout << "Podaj liczbe: ";
        cin >> t[ i ];
        i++;
    } while( i < iledolosowania );
   
}

int main()
{
    srand( time( 0 ) );
    int tablica[ 10 ];
    int prawdziwa[ 10 ];
    int wylosowanych = 0, iledolosowania = 0, losowane = 0;
    cout << "Ile liczb chcesz wylosowac ? Minimum 6 liczb maxymalnie 10 z przedziału od 1-15. Zostanie wylosowanych 5 z nich." << endl;
    cin >> iledolosowania;
    wczytaj( tablica, iledolosowania );
    do {
        if( losowane < iledolosowania ) {
           
            if( losuj( tablica, iledolosowania ) == false )
            {
                if( tablica[ losowane ] = prawdziwa[ wylosowanych ] ) {
                    prawdziwa[ wylosowanych ] = tablica[ losowane ];
                    wylosowanych++;
                }
                losowane++;
            }
        }
        else losowane = 0;
       
    } while( wylosowanych < 5 );
   
    wylosowanych = 0;
   
    do {
        cout << prawdziwa[ wylosowanych ] << endl;
        wylosowanych++;
    } while( wylosowanych < 5 );
   
   
    getchar();
    return 0;
}
 Może mnie ktoś nakierować co zrobiłem źle, na co zwrócić uwagę.
P-138704
« 1 »
  Strona 1 z 1