Ejercicios 13 04 2026

 

Hacer una función que reciba un array de enteros en el rango 1..5 y un tope en el rango 0..5 y devuelva la suma de dichos elementos.

#include <stdio.h>

 

// Función que recibe un array de enteros y un tope (0..5)

// Devuelve la suma de los elementos hasta ese tope.

int sumarArray(int arr[], int tope) {

    int suma = 0;

    if (tope < 0 || tope > 5) {

        printf("Error: tope fuera de rango (0..5)\n");

        return -1; // código de error

    }

    for (int i = 0; i < tope; i++) {

        suma += arr[i];

    }

    return suma;

}

 

int main() {

    // Ejemplo con 5 elementos

    int datos1[5] = {10, -3, 7, 25, 0};

    int tope1 = 5;

 

    int resultado1 = sumarArray(datos1, tope1);

    if (resultado1 != -1) {

        printf("La suma del primer array es: %d\n", resultado1);

    }

 

    // Ejemplo con 3 elementos

    int datos2[5] = {100, 200, -50};

    int tope2 = 3;

 

    int resultado2 = sumarArray(datos2, tope2);

    if (resultado2 != -1) {

        printf("La suma del segundo array es: %d\n", resultado2);

    }

 

    // Ejemplo con tope = 0 (array vacío)

    int datos3[5] = {0}; // no importa el contenido

    int tope3 = 0;

 

    int resultado3 = sumarArray(datos3, tope3);

    if (resultado3 != -1) {

        printf("La suma del tercer array es: %d\n", resultado3);

    }

 

    return 0;

}

 

Versión ahora con un struct para el array:

#include <stdio.h>

 

#define MAX 5   // constante para el tamaño máximo del array

 

// Definimos un struct que contiene el array y su tope

typedef struct {

    int datos[MAX];  // hasta MAX enteros

    int tope;        // cantidad de elementos válidos (0..MAX)

} ArrayEnteros;

 

// Función que recibe el struct y devuelve la suma de los elementos

int sumarArray(ArrayEnteros arr) {

    int suma = 0;

    if (arr.tope < 0 || arr.tope > MAX) {

        printf("Error: tope fuera de rango (0..%d)\n", MAX);

        return -1; // código de error

    }

    for (int i = 0; i < arr.tope; i++) {

        suma += arr.datos[i];

    }

    return suma;

}

 

int main() {

    // Ejemplo con MAX elementos

    ArrayEnteros a1 = {{10, -3, 7, 25, 0}, 5};

    int resultado1 = sumarArray(a1);

    if (resultado1 != -1) {

        printf("La suma del primer array es: %d\n", resultado1);

    }

 

    // Ejemplo con 3 elementos

    ArrayEnteros a2 = {{100, 200, -50}, 3};

    int resultado2 = sumarArray(a2);

    if (resultado2 != -1) {

        printf("La suma del segundo array es: %d\n", resultado2);

    }

 

    // Ejemplo con tope = 0 (array vacío)

    ArrayEnteros a3 = {{0}, 0};

    int resultado3 = sumarArray(a3);

    if (resultado3 != -1) {

        printf("La suma del tercer array es: %d\n", resultado3);

    }

 

    return 0;

}

 

Atención cuando el array con tope 2tiene menos elementos que el total y queremos definirlo como constante:

Código con lectura del array desde teclado

 

#include <stdio.h>

 

#define MAX 5   // constante para el tamaño máximo del array

 

// Definimos un struct que contiene el array y su tope

typedef struct {

    int datos[MAX];  // hasta MAX enteros

    int tope;        // cantidad de elementos válidos (0..MAX)

} ArrayEnteros;

 

// Función auxiliar para leer el tope desde teclado

int leerTope() {

    int t;

    do {

        printf("Ingrese la cantidad de elementos (0..%d): ", MAX);

        scanf("%d", &t);

        if (t < 0 || t > MAX) {

            printf("Valor inválido. Debe estar entre 0 y %d.\n", MAX);

        }

    } while (t < 0 || t > MAX);

    return t;

}

 

// Función auxiliar para leer los elementos del array desde teclado

void leerArray(ArrayEnteros *arr) {

    arr->tope = leerTope();

    for (int i = 0; i < arr->tope; i++) {

        printf("Ingrese el elemento %d: ", i + 1);

        scanf("%d", &arr->datos[i]);

    }

}

 

// Función que recibe el struct y devuelve la suma de los elementos

int sumarArray(ArrayEnteros arr) {

    int suma = 0;

    for (int i = 0; i < arr.tope; i++) {

        suma += arr.datos[i];

    }

    return suma;

}

 

int main() {

    ArrayEnteros a;

 

    // Leer array desde teclado

    leerArray(&a);

 

    // Calcular suma

    int resultado = sumarArray(a);

    printf("La suma de los elementos es: %d\n", resultado);

 

    return 0;

}

Comentarios

Entradas populares de este blog