Итоги: Динамический массив
Часть раздела Логика и управление потоком путешествия по C на Coddy. Урок 37 из 63.
Задание
ЛегкоНапиши программу на C, которая создает динамический массив на основе пользовательского ввода, обрабатывает данные и демонстрирует правильное управление памятью. Твоя программа должна:
- Считать у пользователя целое число
n, обозначающее количество сохраняемых элементов - Использовать
malloc()сsizeof(), чтобы динамически выделить память для массива изnцелых чисел - Проверить, успешно ли выделена память: если нет, вывести
Memory allocation failed!и завершить программу - Если память выделена успешно, вывести
Array of size [n] created successfully! - Считать у пользователя
nцелых чисел и сохранить их в выделенном массиве - Вычислить и вывести сумму всех элементов в формате:
Sum: [value] - Найти и вывести минимальное значение в формате:
Minimum: [value] - Посчитать количество элементов, превышающих среднее значение, и вывести результат в формате:
Elements above average: [count] - Вывести общий объем использованной памяти в байтах в формате:
Memory used: [bytes] bytes - Использовать
free(), чтобы освободить память - Вывести
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;
}Все уроки раздела Логика и управление потоком
1Основы указателей
Что такое указатель?Объявление указателейОператор взятия адреса (&)Оператор разыменования (*)Указатели NULLИтоги: Основы указателей4Проект: Простая текстовая утилита
Обзор проектаПодсчет символов2Указатели и массивы
Имена массивов как указателиЭлементы массива — указателиАрифметика указателейСравнение указателейИтоги: Обход массива через указатели5Указатели и функции
Передача по значениюПередача указателей в функцииИзменение переменных через указателиКлассический пример: SwapПередача массивов в функцииИтоги: указатели как аргументы функций8Структуры и указатели
Указатели на структурыОператор «стрелка» (->)Передача структур по значениюПередача указателей на структурыДинамическое выделение памяти для структурИтоги: Изменение структур через указатели11Итоговые задачи на повторение
Повторение: динамическая конкатенация строкПовторение: массив структурПовторение: счетчик частоты слов3Символьные массивы и строки
Строки как массивы charНуль-терминаторВвод строк с помощью scanfИспользование strlen()Использование strcpy()Использование strcat()Использование strcmp()Итоги: основные строковые функцииПотренируйтесь самостоятельно: Онлайн-компилятор C