Cześć,
Na zajęcia ze Struktur Danych i Złożoności Obliczeniowej mamy napisać program bazujący na tablicy struktur o 3 polach (int, char, float). Jednak jest zastrzeżenie, że wartość w polu int nie może się powtarzać w żadnej ze struktur i tutaj pojawia się problem. Napisałem funkcję, która jako argumenty przyjmuje indeks elementu dla którego ma wylosować liczbę i adres do tablicy struktur. Funkcja ta dla elementu o indeksie 0 losuje liczbę bez sprawdzania innych (bo póki co nie ma co sprawdzać) a dla elementów o indeksie 1, 2 itd losuje liczbę po czym sprawdza czy ta jest równa którejś z wcześniej umieszczonych w polach int wartości i dopiero po sprawdzeniu umieszcza ją w polu lub znowu losuje jeżeli taka wartość została znaleziona. Problem w tym, że po posortowaniu tej tablicy według właśnie wartości pól int powtarzają się one (wartości pól int). Załączam napisaną przeze mnie funkcję i z góry dzięki za pomoc.
int randomNumber(int count, Structure **tab)
{
int _number;
srand(time(NULL));
if (count == 0)
{
_number = ((rand() % 10000 + 1) - 1000);
}
else
{
for (int i = 0; i < count; i++)
{
_number = ((rand() % 10000 + 1) - 1000);
if (_number == tab[i]->number)
{
i = -1;
continue;
}
}
return _number;
}
}