fixed filling the array

This commit is contained in:
Nick Haller 2025-12-09 15:30:54 +01:00
parent fc3508140a
commit 35b09294bc

View File

@ -24,6 +24,7 @@ unsigned int checkArray(unsigned int *array, unsigned int len, unsigned int numb
{ {
free = 0; free = 0;
break; break;
} }
} }
@ -34,7 +35,8 @@ unsigned int *createNumbers(unsigned int len)
{ {
srand(time(NULL)); srand(time(NULL));
unsigned int *array = (unsigned int *)malloc(len * sizeof(unsigned int)); unsigned int *array = (unsigned int *)malloc(len * sizeof(unsigned int));
int randomNr, randomPos, counter; int randomNr, randomPos, filler;
if (array == NULL) if (array == NULL)
{ {
@ -45,45 +47,25 @@ unsigned int *createNumbers(unsigned int len)
{ {
array[i] = 0; array[i] = 0;
} }
randomNr = rand() % (2 * len + 1); for (int i = 0; i < len; i++)
randomPos = rand() % (len);
array[randomPos] = randomNr;
do
{ {
randomPos = rand() % (len);
} while (array[randomPos] != 0);
array[randomPos] = randomNr;
while (!checkArray(array, len, 0))
{
counter = 0;
do do
{ {
if (counter == len) array[i] = (rand() % (2 * len))+ 1;
{ } while (!checkArray(array, i, array[i]));
return NULL;
}
randomPos = rand() % (len);
counter++;
} while (array[randomPos] != 0);
counter = 0;
do
{
if (counter == len * 2)
{
return NULL;
}
randomNr = rand() % (2 * len + 1);
counter++;
} while (!checkArray(array, len, randomNr));
array[randomPos] = randomNr;
} }
randomPos = rand() % len;
randomNr = array[randomPos];
filler = randomPos;
while(filler == randomPos)
{
filler = rand() % len;
}
array[filler] = randomNr;
return array; return array;
} }