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

Losowanie liczby bez powtórzeń proszę o pomoc

Ostatnio zmodyfikowano 2016-08-01 16:23
Autor Wiadomość
Luq
» 2016-08-01 15:48:29
cin >> tab
 zamień na
cin >> tab[ i ]
Podobnie
if( tab == iLiczba )
 zmieniasz na
if( tab[ i ] == iLiczba )

Funkcja losowanie zwróci Ci wartość 0 lub 1, a Twoja tablica z maina ma 3 elementy. Popraw tą 2 na 3
P-150465
XxSPIDUxX
» 2016-08-01 16:04:59
dzięki luq za podpowiedzi jednak z tym 'i" wyszło tak ze nie wiedziałem jak wstawić to w tą ramkę z kodem i się zrobiło jako znacznik kursywy i zniknęło. może wstawię ten  kod od nowa:
po za tym mam dwie tablice. ta do wczytania liczb ma 3. to przechowująca wylosowane ma 2.

wciąż mi to while i < ile w funkcji czy_byla_wylosowana nie daje spokoju.

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

using namespace std;

int podaj_liczby( int tab[], int ile )
{
    int i = 0;
    do
    {
        cout << "podaj liczbe " << i + 1 << " : ";
        cin >> tab[ i ];
        i++;
    } while( i < ile );
   
}

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

int losowanie()
{
    return( rand() % 2 );
}

void wyswietl_liczby( int x, int ilosc, int tab[] )
{
    do
    {
        cout << "Wylosowana liczba to: " << tab[ x ] << endl;
        x++;
    } while( x < ilosc );
   
}

int main()
{
    cout << "Witaj w tym pieknym programie. " << endl;
    srand( time( 0 ) );
    int liczby[ 3 ], wylosowanych, liczby_wylosowane[ 2 ], x;
    wylosowanych = 0;
    x = 0;
    podaj_liczby( liczby, 3 );
    do
    {
        int liczba;
        liczba = liczby[ losowanie() ];
        if( czy_byla_wylosowana( wylosowanych, liczby_wylosowane, liczba ) == false )
        {
            liczba = liczby_wylosowane[ x ];
            x++;
            wylosowanych++;
        }
    } while( wylosowanych < 2 );
   
    x = 0;
    wyswietl_liczby( x, 2, liczby_wylosowane );
   
    return 0;
}
P-150466
Luq
» 2016-08-01 16:13:58
liczba = liczby_wylosowane[ x ];
Nie w tą stronie przypisanie :)
P-150467
XxSPIDUxX
» 2016-08-01 16:23:05
dzięki luq. jesteś wielki. następnym razem będę pamiętał żeby takie rzeczy sprawdzać zawsze :)
P-150468
1 « 2 »
Poprzednia strona Strona 2 z 2