From da5a1d9cbada7d933eb8ed545c9138020e7cfac5 Mon Sep 17 00:00:00 2001 From: Moritz Hertel Date: Fri, 12 Dec 2025 15:01:58 +0100 Subject: [PATCH] =?UTF-8?q?Array=20erstellt=20und=20mit=20Zufallszahlen=20?= =?UTF-8?q?bef=C3=BCllt(numbers.c)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- numbers.c | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/numbers.c b/numbers.c index f59d9a2..01e1405 100644 --- a/numbers.c +++ b/numbers.c @@ -5,11 +5,11 @@ #include "numbers.h" #include "bintree.h" -//TODO: getDuplicate und createNumbers implementieren +// TODO: getDuplicate und createNumbers implementieren /* * * Erzeugen eines Arrays mit der vom Nutzer eingegebenen Anzahl an Zufallszahlen. - * Sicherstellen, dass beim Befüllen keine Duplikate entstehen. - * Duplizieren eines zufälligen Eintrags im Array. - * in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ + * Sicherstellen, dass beim Befüllen keine Duplikate entstehen. + * Duplizieren eines zufälligen Eintrags im Array. + * in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ // Returns len random numbers between 1 and 2x len in random order which are all different, except for two entries. // Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while @@ -17,10 +17,41 @@ unsigned int *createNumbers(unsigned int len) { + int n; + printf("Wie viele Zufallszahlen sollen erstellt werden? "); + scanf("%d", &n); + + int array[n]; + srand(time(NULL)); // Zufallsgenerator initialisieren + + for (int i = 0; i < n; i++) + { + int zahl; + char vorhanden; + + do + { + vorhanden = 0; + zahl = rand() % n; // Zufallszahl zwischen 1 und 100 + + // Prüfen, ob Zahl schon im Array existiert + for (int j = 0; j < i; j++) + { + if (array[j] == zahl) + { + vorhanden = 1; + break; + } + } + } while (vorhanden); // solange wiederholen, bis Zahl einzigartig ist + + array[i] = zahl; + } + + return 0; } // Returns only the only number in numbers which is present twice. Returns zero on errors. unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) { - } \ No newline at end of file