Menu
Coddy logo textTech

Recapitulação: Array Dinâmico

Parte da seção Logic & Flow do Journey de C da Coddy — lição 37 de 63.

challenge icon

Desafio

Fácil

Escreva um programa em C que crie um array dinâmico com base na entrada do usuário, processe os dados e demonstre o gerenciamento adequado de memória. Seu programa deve:

  1. Ler um número inteiro n do usuário representando o número de elementos a serem armazenados
  2. Usar malloc() com sizeof() para alocar dinamicamente memória para um array de n inteiros
  3. Verificar se a alocação de memória foi bem-sucedida - se falhar, imprimir Memory allocation failed! e encerrar o programa
  4. Se a alocação for bem-sucedida, imprimir Array of size [n] created successfully!
  5. Ler n valores inteiros do usuário e armazená-los no array alocado
  6. Calcular e imprimir a soma de todos os elementos no formato: Sum: [value]
  7. Encontrar e imprimir o valor mínimo no formato: Minimum: [value]
  8. Contar quantos elementos são maiores que a média e imprimir no formato: Elements above average: [count]
  9. Imprimir a memória total usada em bytes no formato: Memory used: [bytes] bytes
  10. Usar free() para desalocar a memória
  11. Imprimir Memory successfully freed! para confirmar a limpeza adequada

Lembre-se de incluir o cabeçalho <stdlib.h> para usar malloc() e free(). Este desafio testa sua compreensão completa do gerenciamento dinâmico de memória, desde a alocação até o uso e a limpeza adequada.

Por exemplo, se a entrada for:

5
12 8 15 3 20

Sua saída deve ser:

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

Este desafio abrangente demonstra o ciclo de vida completo do gerenciamento dinâmico de memória enquanto realiza operações significativas de processamento de dados no array alocado.

Experimente você mesmo

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

int main() {
    // Leia o número de elementos
    int n;
    scanf("%d", &n);
    
    // TODO: Escreva seu código abaixo
    // 1. Alocar memória para n inteiros usando malloc()
    // 2. Verifique se a alocação foi bem-sucedida
    // 3. Leia n inteiros para o array
    // 4. Calcule a soma, encontre o mínimo, conte os elementos acima da média
    // 5. Imprima os resultados e libere a memória
    
    return 0;
}

Todas as lições de Logic & Flow