numbers.c passiert alle Tests
This commit is contained in:
parent
c6fd4b300e
commit
a7fd62eda4
18
numbers.c
18
numbers.c
@ -32,7 +32,10 @@ unsigned int *createNumbers(unsigned int len)
|
|||||||
indexDuplicate = rand() % len;
|
indexDuplicate = rand() % len;
|
||||||
} while (numbers[indexDuplicate] == duplicate);
|
} while (numbers[indexDuplicate] == duplicate);
|
||||||
|
|
||||||
|
if (numbers[len-1] != duplicate) {
|
||||||
numbers[len-1] = numbers[indexDuplicate];
|
numbers[len-1] = numbers[indexDuplicate];
|
||||||
|
}
|
||||||
|
|
||||||
numbers[indexDuplicate] = duplicate;
|
numbers[indexDuplicate] = duplicate;
|
||||||
|
|
||||||
return numbers;
|
return numbers;
|
||||||
@ -60,12 +63,19 @@ unsigned int getDuplicate(const unsigned int numbers[], unsigned int len)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
qsort((void*)numbers, len, sizeof(unsigned int), compare);
|
unsigned int *copy = malloc (sizeof(unsigned int) * len);
|
||||||
|
memcpy (copy, numbers, sizeof(unsigned int) * len);
|
||||||
|
|
||||||
|
qsort(copy, len, sizeof(unsigned int), compare);
|
||||||
|
|
||||||
for (int i = 0; i < len-1; i++) {
|
for (int i = 0; i < len-1; i++) {
|
||||||
if (numbers[i] == numbers [i+1]) {
|
if (copy[i] == copy [i+1]) {
|
||||||
return numbers[i];
|
unsigned int result = copy [i];
|
||||||
|
free (copy);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
|
free (copy);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user