Menu
CoddyTech

Podsumowanie: tablica dynamiczna

Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 37 z 63.

challenge icon

Wyzwanie

Łatwy

Napisz program w C, który tworzy tablicę dynamiczną na podstawie danych wprowadzonych przez użytkownika, przetwarza dane i demonstruje prawidłowe zarządzanie pamięcią. Twój program powinien:

  1. Wczytać od użytkownika liczbę całkowitą n, określającą liczbę elementów do przechowania
  2. Użyć malloc() wraz z sizeof(), aby dynamicznie przydzielić pamięć dla tablicy zawierającej n liczb całkowitych
  3. Sprawdzić, czy przydzielenie pamięci się powiodło — jeśli się nie powiedzie, wypisać Memory allocation failed! i zakończyć program
  4. Jeśli przydzielenie pamięci się powiedzie, wypisać Array of size [n] created successfully!
  5. Wczytać od użytkownika n wartości całkowitych i zapisać je w przydzielonej tablicy
  6. Obliczyć i wypisać sumę wszystkich elementów w formacie: Sum: [value]
  7. Znaleźć i wypisać najmniejszą wartość w formacie: Minimum: [value]
  8. Policzyć, ile elementów jest większych od średniej, i wypisać wynik w formacie: Elements above average: [count]
  9. Wypisać całkowitą ilość użytej pamięci w bajtach w formacie: Memory used: [bytes] bytes
  10. Użyć free(), aby zwolnić pamięć
  11. Wypisać Memory successfully freed!, aby potwierdzić prawidłowe zwolnienie pamięci

Pamiętaj, aby dołączyć nagłówek <stdlib.h>, który umożliwia użycie malloc() i free(). To wyzwanie sprawdza pełne zrozumienie dynamicznego zarządzania pamięcią — od przydzielania jej, przez używanie, aż po prawidłowe zwalnianie.

Na przykład, jeśli dane wejściowe to:

5
12 8 15 3 20

Wynik powinien być następujący:

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

To kompleksowe wyzwanie demonstruje pełny cykl życia dynamicznego zarządzania pamięcią, a zarazem wykonywanie praktycznych operacji przetwarzania danych na przydzielonej tablicy.

Spróbuj swoich sił

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

int main() {
    // Wczytaj liczbę elementów
    int n;
    scanf("%d", &n);
    
    // TODO: Napisz swój kod poniżej
    // 1. Przydziel pamięć dla n liczb całkowitych za pomocą malloc()
    // 2. Sprawdź, czy przydzielenie pamięci się powiodło
    // 3. Wczytaj n liczb całkowitych do tablicy
    // 4. Oblicz sumę, znajdź minimum i policz elementy powyżej średniej
    // 5. Wyświetl wyniki i zwolnij pamięć
    
    return 0;
}

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online