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