Array erstellt und mit Zufallszahlen befüllt(numbers.c)

This commit is contained in:
Moritz Hertel 2025-12-12 15:01:58 +01:00
parent 95af97bef7
commit da5a1d9cba

View File

@ -5,11 +5,11 @@
#include "numbers.h" #include "numbers.h"
#include "bintree.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. /* * * Erzeugen eines Arrays mit der vom Nutzer eingegebenen Anzahl an Zufallszahlen.
* Sicherstellen, dass beim Befüllen keine Duplikate entstehen. * Sicherstellen, dass beim Befüllen keine Duplikate entstehen.
* Duplizieren eines zufälligen Eintrags im Array. * Duplizieren eines zufälligen Eintrags im Array.
* in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ * 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 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 // 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) 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. // 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) unsigned int getDuplicate(const unsigned int numbers[], unsigned int len)
{ {
} }