Menu
CoddyTech

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

Часть раздела Логика и управление потоком путешествия по 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: 3
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;
}

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор C