Menu
CoddyTech

Rückblick: Dynamische Arrays

Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 37 von 63.

challenge icon

Aufgabe

Einfach

Schreibe ein C-Programm, das basierend auf Benutzereingaben ein dynamisches Array erstellt, die Daten verarbeitet und eine ordnungsgemäße Speicherverwaltung demonstriert. Dein Programm sollte:

  1. Eine Ganzzahl n vom Benutzer einlesen, die die Anzahl der zu speichernden Elemente angibt
  2. Mit malloc() und sizeof() dynamisch Speicher für ein Array aus n Ganzzahlen reservieren
  3. Prüfen, ob die Speicherreservierung erfolgreich war – falls nicht, Memory allocation failed! ausgeben und das Programm beenden
  4. Bei erfolgreicher Speicherreservierung Array of size [n] created successfully! ausgeben
  5. n Ganzzahlwerte vom Benutzer einlesen und im reservierten Array speichern
  6. Die Summe aller Elemente berechnen und im Format Sum: [value] ausgeben
  7. Den Minimalwert finden und im Format Minimum: [value] ausgeben
  8. Zählen, wie viele Elemente größer als der Durchschnitt sind, und im Format Elements above average: [count] ausgeben
  9. Den insgesamt verwendeten Speicher in Bytes im Format Memory used: [bytes] bytes ausgeben
  10. Mit free() den Speicher freigeben
  11. Memory successfully freed! ausgeben, um die ordnungsgemäße Freigabe zu bestätigen

Denke daran, den Header <stdlib.h> einzubinden, um malloc() und free() verwenden zu können. Diese Herausforderung prüft dein umfassendes Verständnis der dynamischen Speicherverwaltung – von der Reservierung über die Nutzung bis zur ordnungsgemäßen Freigabe.

Wenn die Eingabe zum Beispiel lautet:

5
12 8 15 3 20

Deine Ausgabe sollte lauten:

Array of size 5 created successfully!
Sum: 58
Minimum: 3
Elements above average: 3
Memory used: 20 bytes
Memory successfully freed!

Diese umfassende Herausforderung veranschaulicht den vollständigen Lebenszyklus der dynamischen Speicherverwaltung und führt gleichzeitig sinnvolle Datenverarbeitungsoperationen auf dem reservierten Array aus.

Probier es selbst

#include <stdio.h>
#include <stdlib.h>

int main() {
    // Lies die Anzahl der Elemente ein
    int n;
    scanf("%d", &n);
    
    // TODO: Schreibe deinen Code unten
    // 1. Reserviere mit malloc() Speicher für n Ganzzahlen
    // 2. Prüfe, ob die Speicherreservierung erfolgreich war
    // 3. Lies n Ganzzahlen in das Array ein
    // 4. Berechne die Summe, finde das Minimum und zähle die Elemente über dem Durchschnitt
    // 5. Gib die Ergebnisse aus und gib den Speicher frei
    
    return 0;
}

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-C-Compiler