From a7fd62eda45ee12a1b5b940082c1bdabf60130f8 Mon Sep 17 00:00:00 2001 From: Fabrice Date: Tue, 9 Dec 2025 20:22:27 +0100 Subject: [PATCH] numbers.c passiert alle Tests --- numbers.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/numbers.c b/numbers.c index 0a48b4d..f4b9029 100644 --- a/numbers.c +++ b/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; } \ No newline at end of file