Compare commits
2 Commits
8449734941
...
833dd6b20c
| Author | SHA1 | Date | |
|---|---|---|---|
| 833dd6b20c | |||
| a8c68f80e4 |
29
numbers.c
29
numbers.c
@ -31,8 +31,8 @@ unsigned int* createNumbers(unsigned int len)
|
||||
TreeNode *numbers;
|
||||
|
||||
int isDuplicate = 0;
|
||||
int number = rand() % (2 * len) + 1;
|
||||
int* array = malloc(len*sizeof(int));
|
||||
unsigned int number = rand() % (2 * len) + 1;
|
||||
unsigned int *array = malloc(len * sizeof(int));
|
||||
|
||||
numbers = addToTree(NULL, &number, sizeof(int), compareFct, &isDuplicate);
|
||||
array[0] = number;
|
||||
@ -44,15 +44,20 @@ unsigned int* createNumbers(unsigned int len)
|
||||
{
|
||||
isDuplicate = 0;
|
||||
i--;
|
||||
}else{
|
||||
}
|
||||
else
|
||||
{
|
||||
array[i] = number;
|
||||
}
|
||||
}
|
||||
|
||||
clearTree(numbers);
|
||||
|
||||
int duplicatePosition1 = rand() % len;
|
||||
int duplicatePosition2 = rand() % len;
|
||||
|
||||
while(duplicatePosition2 == duplicatePosition1){
|
||||
while (duplicatePosition2 == duplicatePosition1)
|
||||
{
|
||||
duplicatePosition2 = rand() % len;
|
||||
}
|
||||
|
||||
@ -64,11 +69,19 @@ unsigned int* createNumbers(unsigned int len)
|
||||
// Returns only the only number in numbers which is present twice. Returns zero on errors.
|
||||
unsigned int getDuplicate(const unsigned int numbers[], unsigned int len)
|
||||
{
|
||||
qsort(numbers, len, sizeof(int), compareFct);
|
||||
unsigned int *copyNumbers = malloc(sizeof(int) * len);
|
||||
for (int i = 0; i < len; i++)
|
||||
{
|
||||
copyNumbers[i] = numbers [i];
|
||||
}
|
||||
|
||||
for(int i = 0; i < len-1; i++){
|
||||
if(numbers[i] == numbers[i+1]){
|
||||
return numbers[i];
|
||||
qsort(copyNumbers, len, sizeof(int), compareFct);
|
||||
|
||||
for (int i = 0; i < len - 1; i++)
|
||||
{
|
||||
if (copyNumbers[i] == copyNumbers[i + 1])
|
||||
{
|
||||
return copyNumbers[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user