3 Commits
Author SHA1 Message Date
Fabrice 91f5c52077 clearTree hinzugefügt 2025-12-10 10:03:36 +01:00
Fabrice fc9031adbd In Main Z.74 geändert 2025-12-10 09:50:33 +01:00
Fabrice a7fd62eda4 numbers.c passiert alle Tests 2025-12-09 20:22:27 +01:00
2 changed files with 18 additions and 6 deletions
+1 -1
View File
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
userInput = inputNumber("Welche Zahl kommt doppelt vor: "); userInput = inputNumber("Welche Zahl kommt doppelt vor: ");
measuredSeconds = stopTimer(); measuredSeconds = stopTimer();
duplicate = getDuplicate(numbers, numberOfElements+1); duplicate = getDuplicate(numbers, numberOfElements);
// check result and update highscores // check result and update highscores
if(userInput == duplicate) if(userInput == duplicate)
+15 -3
View File
@@ -32,9 +32,14 @@ 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;
clearTree(binTree);
return numbers; return numbers;
} }
@@ -60,12 +65,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;
} }
} }
free (copy);
return 0; return 0;
} }