Menu
Coddy logo textTech

Resumen: Arrays dinámicos

Parte de la sección Logic & Flow del Journey de C de Coddy — lección 37 de 63.

challenge icon

Desafío

Fácil

Escribe un programa en C que cree un array dinámico basado en la entrada del usuario, procese los datos y demuestre una gestión de memoria adecuada. Tu programa debe:

  1. Leer un entero n del usuario que represente el número de elementos a almacenar
  2. Usar malloc() con sizeof() para asignar dinámicamente memoria para un array de n enteros
  3. Verificar si la asignación de memoria fue exitosa; si falla, imprimir Memory allocation failed! y terminar el programa
  4. Si la asignación tiene éxito, imprimir Array of size [n] created successfully!
  5. Leer n valores enteros del usuario y almacenarlos en el array asignado
  6. Calcular e imprimir la suma de todos los elementos en el formato: Sum: [value]
  7. Encontrar e imprimir el valor mínimo en el formato: Minimum: [value]
  8. Contar cuántos elementos son mayores que el promedio e imprimir en el formato: Elements above average: [count]
  9. Imprimir la memoria total utilizada en bytes en el formato: Memory used: [bytes] bytes
  10. Usar free() para liberar la memoria
  11. Imprimir Memory successfully freed! para confirmar la limpieza adecuada

Recuerda incluir la cabecera <stdlib.h> para usar malloc() y free(). Este desafío pone a prueba tu comprensión completa de la gestión dinámica de memoria, desde la asignación hasta el uso y la limpieza adecuada.

Por ejemplo, si la entrada es:

5
12 8 15 3 20

Tu salida debería ser:

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

Este desafío integral demuestra el ciclo de vida completo de la gestión dinámica de memoria mientras se realizan operaciones de procesamiento de datos significativas en el array asignado.

Pruébalo tú mismo

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

int main() {
    // Leer el número de elementos
    int n;
    scanf("%d", &n);
    
    // TODO: Escribe tu código a continuación
    // 1. Asignar memoria para n enteros usando malloc()
    // 2. Verificar si la asignación fue exitosa
    // 3. Leer n enteros en el arreglo
    // 4. Calcular la suma, encontrar el mínimo, contar elementos por encima del promedio
    // 5. Imprimir resultados y liberar memoria
    
    return 0;
}

Todas las lecciones de Logic & Flow