Witam.
Wykorzystałem już wszystkie możliwości samodzielnego rozwiązania tego problemu. Próbowałem napisać program drugi raz od nowa, jednak występuje ten sam problem. Program zatrzymuje się w pewnym momencie i nie wyświetla na ekranie wylosowanych liczb lub wyświetla liczby z kosmosu. Losowanie jest ok, wczytywanie liczb również, nie działa coś w sprawdzaniu(funkcji do...while). Wiem, że na forum są podobne tematy, jednak nie potrafię wychwycić jaki błąd popełniam, a chciałbym wiedzieć, gdzie jest on w moim programie. Proszę o pomoc, gdzie jest problem?
//Napisz program, który wczyta 3 liczby podane przez u¿ytkownika do tablicy, a nastêpnie wylosuje 2 z nich bez powtórzeñ.
//Wynik wypisz na ekran. Postaraj się napisać ten program w oparciu o funkcje.
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int wczytaj(int tablica[])
{
int i=0;
do
{
cout << "Podaj " << i + 1 << " liczbe: ";
cin >> tablica[i];
i++;
}while(i<3);
}
bool czybylawylosowana(int tab[], int ilewyl, int liczba)
{
if (ilewyl <= 0)
return false;
int i = 0;
do
{
if(liczba==tab[i])
{
return true;
i++; //tego kodu nie jestem pewien
}
}while(i<2);
return false;
}
int losowanie()
{
return rand()%3;
}
int main()
{
int wczytaneliczby[3];
int ilewyl = 0;
int wylosowane[2];
int liczba;
srand(time(NULL));
wczytaj(wczytaneliczby);
do
{
liczba = wczytaneliczby[losowanie()];
if(czybylawylosowana(wczytaneliczby, ilewyl, liczba) == false)
{
wylosowane[ilewyl] = liczba;
ilewyl++;
cout << wylosowane[ilewyl];
}
else
break;
}while(ilewyl<2);
cout << "Wylosowane liczby to: " << wylosowane[0] << " oraz " << wylosowane[1] << endl;
return 0;
}
Dzięki z góry za wszelkie sugestie.