#include #include #include #include #include "numbers.h" #include "bintree.h" //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. */ // 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 // creating random numbers. void createnumbers2(int array[], int length) { for (int i =0; i < length; i++) { array[i] = rand() % 9 +1; for (int j = 0; j < i;j++) { if( array[j] == array[i] ) { array[i] = rand() % 9 +1; } } } } unsigned int *createNumbers(unsigned int len) { srand(time(NULL)); int array[len]; createnumbers2(array, len); int zufall =0; zufall = rand() % (len+1) + 0; array[0] = array[zufall]; return array; //was soll zurückgegeben werden? } // 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) { //geht nicht, weil array nur lesen möglich? for (int i = 0; i < len; i++) { for (int j = 0; j < len-1; j++) { if (numbers[i] < numbers[j]) { int temp = numbers[i]; numbers[i] = numbers[j]; numbers[j] = temp; } if (numbers[i] == numbers[j]) { return numbers[i]; } } } }