Menu
Coddy logo textTech

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 wejściowych użytkownika, przetwarza dane i demonstruje prawidłowe zarządzanie pamięcią. Twój program powinien:

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

Pamiętaj, aby dołączyć nagłówek <stdlib.h>, by móc używać malloc() i free(). To wyzwanie sprawdza pełne zrozumienie dynamicznego zarządzania pamięcią — od przydzielania przez użycie aż po prawidłowe zwolnienie.

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

5
12 8 15 3 20

Oczekiwany wynik:

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

To kompleksowe wyzwanie pokazuje pełny cykl życia dynamicznego zarządzania pamięcią, jednocześnie wykonując użyteczne operacje 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 większe od średniej
    // 5. Wypisz wyniki i zwolnij pamięć
    
    return 0;
}

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C online