numbers.c passiert alle Tests

This commit is contained in:
Fabrice 2025-12-09 20:22:27 +01:00
parent c6fd4b300e
commit a7fd62eda4

View File

@ -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;
}