#include #include #include void erstelleZufallszahlen(int *array, int size); int vergleiche(const void *a, const void *b); int findeModus(int *array, int size); int main() { int length = 0; int validInput = 0; while (!validInput) { printf("Wieviele Zufallswerte (1..10000): "); scanf("%d", &length); while (getchar() != '\n'); // Eingabepuffer leeren if (length <= 0 || length > 10000) { printf("Ungueltige Eingabe. Bitte geben Sie eine Zahl zwischen 1 und 10000 ein.\n"); } else { validInput = 1; } } int randomnumbers[length]; // Array für die Zufallszahlen // Zufallszahlengenerator initialisieren srand(time(NULL)); // Zufallszahlen erstellen erstelleZufallszahlen(randomnumbers, length); // Zufallszahlen ausgeben printf("Die generierten Zufallszahlen sind:\n"); for (int i = 0; i < length; i++) { printf("%d ", randomnumbers[i]); } // Zufallszahlen sortieren qsort(randomnumbers, length, sizeof(int), vergleiche); // Sortierte Zufallszahlen ausgeben printf("Die sortierten Zufallszahlen sind:\n"); for (int i = 0; i < length; i++) { printf("%d ", randomnumbers[i]); } // Modus berechnen int modus = findeModus(randomnumbers, length); printf("Der Modus der Zahlenreihe ist: %d\n", modus); return 0; } void erstelleZufallszahlen(int *array, int size) { for (int i = 0; i < size; i++) { *(array + i) = rand() % 100 + 1; // Zufallszahl zwischen 1 und 100 } } int vergleiche(const void *a, const void *b) { return (*(int *)a - *(int *)b); // Vergleichsfunktion für qsort } int findeModus(int *array, int size) { int modus = array[0]; int maxCount = 1; int currentCount = 1; for (int i = 1; i < size; i++) { if (array[i] == array[i - 1]) { currentCount++; // Gleiche Zahl gefunden, Zähler erhöhen } else { if (currentCount > maxCount) { maxCount = currentCount; // Neuer Modus gefunden modus = array[i - 1]; } currentCount = 1; // Zähler zurücksetzen } } // Letzte Zahl prüfen if (currentCount > maxCount) { modus = array[size - 1]; } return modus; }