fixed filling the array
This commit is contained in:
parent
fc3508140a
commit
35b09294bc
52
numbers.c
52
numbers.c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user