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

Z trzech podanych liczb losowane są tylko dwie ostatnie

Ostatnio zmodyfikowano 2015-07-19 23:54
Autor Wiadomość
bulbulator
Temat założony przez niniejszego użytkownika
Z trzech podanych liczb losowane są tylko dwie ostatnie
» 2015-07-19 20:35:00
Mam zrobić program w którym podaje trzy liczby, i losowane są dwie bez powtórzeń. Poszukałem rozwiązania w internecie bo trochę nie wiedziałem jak sie za to zabrać ale i tak jest coś nie tak bo losują się tylko dwie ostatnie liczby z trzech, nigdy ta pierwsza
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++;
    } while( i < ile );
   
    return false;
   
}
int wylosuj()
{
    return( rand() % 2 ) + 1;
}



int main()
{
    srand( time( NULL ) );
    int liczby[ 3 ];
    int wylosowane[ 2 ];
    int wylosowanych = 0;
    cout << "podaj 3 liczby: " << endl;
    int i = 0;
    do
    {
        cin >> liczby[ i ];
        i++;
    } while( i < 3 );
   
    do
    {
        int liczba = wylosuj();
        if( czyBylaWylosowana( liczba, wylosowane, wylosowanych ) == false )
        {
            wylosowane[ wylosowanych ] = liczba;
            wylosowanych++;
        }
    } while( wylosowanych < 2 );
   
    cout << endl << "wylosowalem 2 liczby z twoich: ";
    int a = 0;
    do
    {
        cout << liczby[ wylosowane[ a ] ] << ", ";
        a++;
    } while( a < 2 );
   
    return 0;
}
P-134931
BadBullPL
» 2015-07-19 21:10:16
Błąd jest w funkcji wylosuj.
P-134933
carlosmay
» 2015-07-19 21:13:41
Losujesz z przedziału dwóch liczb, a tablica ma trzy liczby.
P-134934
bulbulator
Temat założony przez niniejszego użytkownika
» 2015-07-19 23:54:40
O rany!rzeczywiście, dzięki. Znowu zapomniałem że zbiór zaczyna się od 0 :)
P-134942
« 1 »
  Strona 1 z 1