Menu
Coddy logo textTech

Итоги: Динамический массив

Часть раздела Logic & Flow путешествия по C на Coddy — урок 37 из 63.

challenge icon

Задание

Легко

Напишите программу на языке C, которая создает динамический массив на основе пользовательского ввода, обрабатывает данные и демонстрирует правильное управление памятью. Ваша программа должна:

  1. Считать целое число n от пользователя, представляющее количество элементов для хранения
  2. Использовать malloc() с sizeof() для динамического выделения памяти под массив из n целых чисел
  3. Проверить, было ли выделение памяти успешным — если оно не удалось, вывести Memory allocation failed! и завершить программу
  4. Если выделение памяти прошло успешно, вывести Array of size [n] created successfully!
  5. Считать n целых чисел от пользователя и сохранить их в выделенном массиве
  6. Вычислить и вывести сумму всех элементов в формате: Sum: [value]
  7. Найти и вывести минимальное значение в формате: Minimum: [value]
  8. Подсчитать, сколько элементов больше среднего значения, и вывести в формате: Elements above average: [count]
  9. Вывести общий объем использованной памяти в байтах в формате: Memory used: [bytes] bytes
  10. Использовать free() для освобождения памяти
  11. Вывести Memory successfully freed! для подтверждения правильной очистки

Не забудьте включить заголовочный файл <stdlib.h> для использования malloc() и free(). Эта задача проверяет ваше полное понимание управления динамической памятью: от выделения и использования до правильной очистки.

Например, если входные данные:

5
12 8 15 3 20

Ваш вывод должен быть следующим:

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

Эта комплексная задача демонстрирует полный жизненный цикл управления динамической памятью при выполнении значимых операций по обработке данных в выделенном массиве.

Попробуйте сами

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

int main() {
    // Считать количество элементов
    int n;
    scanf("%d", &n);
    
    // TODO: Напишите свой код ниже
    // 1. Выделить память для n целых чисел с помощью malloc()
    // 2. Проверить, была ли аллокация успешной
    // 3. Считать n целых чисел в массив
    // 4. Вычислить сумму, найти минимум, подсчитать количество элементов выше среднего
    // 5. Вывести результаты и освободить память
    
    return 0;
}

Все уроки раздела Logic & Flow