diff --git a/nulleins.c b/nulleins.c index 6ef75cd..fe612dc 100644 --- a/nulleins.c +++ b/nulleins.c @@ -1,19 +1,4 @@ -//Programm soll zufällig 0,1 mit x beliebigen Stellen erstelle. x soll von Benutzer festgelegt werden -/*Komprimieren: - 2 Glieche aufeinanderfolgende Zahlen: 0 - 2 Unterschiedliche aufeinanderfolgende Zahlen: 1 - - 1. Einlesen der Benutzereingabe - 2. Void Funktion für das Generieren von Zufallszahlen - 3. Sorierfunktion - 4. Vergleichen Array 1,2 | 3,4 | 5,6 | ... - --> Wenn eins übrig ist --> in nächste Zeile übernehmen - -*/ - - #include -#include #include #include @@ -32,52 +17,65 @@ int input() { return eingabe; } -void zahlenfolge(int laenge, int arr[]) { - srand(time(NULL)); - for(int i = 0; i < laenge; i++) { +void zahlenfolge(int eingabe, int arr[]) { + srand(time(NULL)); + for (int i = 0; i < eingabe; i++) { arr[i] = rand() % 2; } } -int vergleich(int arr[], int laenge) { - while ( - for(int i = 0; i < laenge; i++) { - if(arr[i] == arr[++i]) { - arr[i] = 0; - printf("%d", 0); - } else { - arr[i] = 1; - printf("%d", 1); +void vergleich(int arr[], int laenge) { + while (laenge > 1) { + int neueLaenge = laenge / 2; + if (laenge % 2 != 0) { + neueLaenge++; } - eingabe = eingabe % 2 + eingabe/2; + + int neuesArray[neueLaenge]; + for (int i = 0; i < laenge / 2; i++) { + neuesArray[i] = arr[i * 2] ^ arr[i * 2 + 1]; + } + if (laenge % 2 != 0) { + neuesArray[neueLaenge - 1] = arr[laenge - 1]; + } + for (int i = 0; i < neueLaenge; i++) { + printf("%d", neuesArray[i]); + } + printf("\n"); + + for (int i = 0; i < neueLaenge; i++) { + arr[i] = neuesArray[i]; + } + + laenge = neueLaenge; + } } int main() { - int array[1000]; int eingabe = input(); - zahlenfolge(eingabe); - for(int i = 0; i < eingabe; i++) { - printf("%d ", array[i]); - } + zahlenfolge(eingabe, array); + + + for (int i = 0; i < eingabe; i++) { + printf("%d ", array[i]); + } + printf("\n"); + + + vergleich(array, eingabe); - printf("Eingegebene Länge: %d\n", eingabe); return 0; } - - - // // Created by Lennart Pecher on 09.04.25. // - -