Menu
Coddy logo textTech

Resumen: Recorrido de Arrays con Punteros

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

challenge icon

Desafío

Fácil

Escribe un programa en C que implemente una función para calcular la suma de todos los elementos en un arreglo de enteros utilizando aritmética de punteros y la equivalencia entre arreglos y punteros. Tu programa debe:

  1. Crear una función llamada calculateSum que reciba dos parámetros:
    • Un puntero a un entero (int *arr) que representa el arreglo
    • Un entero (size) que representa el número de elementos en el arreglo
  2. Dentro de la función calculateSum:
    • Inicializar una variable sum en 0
    • Crear una variable de tipo puntero ptr y establecerla para que apunte al inicio del arreglo
    • Usar un bucle para recorrer el arreglo utilizando aritmética de punteros
    • En cada iteración, sumar el valor al que apunta ptr a sum
    • Incrementar el puntero para moverse al siguiente elemento
    • Devolver la suma calculada
  3. En la función main:
    • Leer un entero n que representa el tamaño del arreglo
    • Declarar un arreglo de enteros de tamaño n
    • Leer n enteros de la entrada para llenar el arreglo
    • Llamar a la función calculateSum con el arreglo y su tamaño
    • Imprimir el resultado en el formato: "Sum: [value]"

La función debe usar aritmética de punteros para el recorrido del arreglo; no utilices la notación de indexación de arreglos como arr[i]. En su lugar, utiliza operaciones de desreferenciación de punteros e incrementos para acceder a los elementos del arreglo.

Por ejemplo, si la entrada es:

5
10 20 30 40 50

Tu salida debería ser:

Sum: 150

Este desafío pone a prueba tu comprensión de cómo las funciones pueden aceptar arreglos como parámetros de puntero, cómo usar la aritmética de punteros para recorrer arreglos de manera eficiente y cómo los nombres de los arreglos se convierten automáticamente en punteros cuando se pasan a las funciones.

Pruébalo tú mismo

#include <stdio.h>

// TODO: Escribe tu función calculateSum aquí

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // Leer los elementos del arreglo
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO: Llamar a la función calculateSum y almacenar el resultado
    
    // TODO: Imprimir el resultado en el formato "Sum: [value]"
    
    return 0;
}

Todas las lecciones de Logic & Flow