Lenguaje de programación C

C: sumar primer y último elemento de arreglo

En este post te voy a explicar cómo es el código para solucionar un algoritmo en C que dice algo así:

Escribir el código necesario que a partir de dos arreglos sume el primer elemento del primer arreglo con el último elemento del segundo; el segundo elemento del primero con el penúltimo elemento del arreglo y así sucesivamente hasta sumar el último elemento del primer arreglo con el primer elemento del segundo arreglo.

Almacenar la suma de cada elemento en un tercer arreglo y al finalizar, imprimir los 3 arreglos.

Lo que haremos será recorrer los arreglos, acceder a los índices por un contador y finalmente sumar. Realmente será sencillo realizar la suma de elementos de arreglos en C.

Sumar elementos de ambos arreglos

Comenzamos declarando los 3 arreglos: el A, el B y el resultante.

int arregloA[10] = {1, 2, 3, 4, 5, 6, 7, 8, 1, 2};
int arregloB[10] = {1, 2, 3, 4, 5, 6, 7, 8, 1, 2};
int arregloC[10];//El resultante

Para que el algoritmo sea sencillo vamos a declarar dos variables que van a indicar la posición de cada arreglo. El primer contador indicará el del arreglo A, y el segundo, el del arreglo B.

// Primero necesitamos la longitud de ambos arreglos. Como tienen la misma longitud, no importa cuál usemos
int longitud = sizeof(arregloA) / sizeof(arregloA[0]);
// Ahora empezamos un ciclo desde 0 hasta 10, pero tenemos dos contadores
// uno nos ayuda a llevar posición del A, y el segundo del B (que irá decrementando)
int contadorA = 0;
int contadorB = longitud - 1;

En el ciclo for que haremos desde 0 hasta la longitud del arreglo vamos a aumentar el contador de A, y disminuir el contador de B. Además, colocaremos la suma en el resultante:

for (int x = 0; x < longitud; x++) {
    // Sumamos. Al inicio contadorA estará en 0 y contadorB en 9
    int suma = arregloA[contadorA] + arregloB[contadorB];
    arregloC[contadorA] = suma;
    // Avanzar en A y retroceder en B
    contadorA++;
    contadorB--;
}

Después de eso, basta con imprimir los arreglos.

Función que imprime los arreglos

Para reutilizar código he implementado una función que imprime el contenido de un arreglo:

void imprimir_arreglo(int arreglo[], int longitud) {
    for (int x = 0; x < longitud; x++) {
        printf("%d ", arreglo[x]);
    }
}

Poniendo todo junto

Y bien, el código completo de este ejercicio en C sobre sumar arreglos y almacenar la suma en el resultado queda así:

/*
  ____          _____               _ _           _       
 |  _ \        |  __ \             (_) |         | |      
 | |_) |_   _  | |__) |_ _ _ __ _____| |__  _   _| |_ ___ 
 |  _ <| | | | |  ___/ _` | '__|_  / | '_ \| | | | __/ _ \
 | |_) | |_| | | |  | (_| | |   / /| | |_) | |_| | ||  __/
 |____/ \__, | |_|   \__,_|_|  /___|_|_.__/ \__, |\__\___|
         __/ |                               __/ |        
        |___/                               |___/         
    
    Blog:       https://parzibyte.me/blog
    Ayuda:      https://parzibyte.me/blog/contrataciones-ayuda/
    Contacto:   https://parzibyte.me/blog/contacto/
    
    Copyright (c) 2020 Luis Cabrera Benito
    Licenciado bajo la licencia MIT
    
    El texto de arriba debe ser incluido en cualquier redistribución
*/#include <stdio.h>

void imprimir_arreglo(int arreglo[], int longitud) {
    for (int x = 0; x < longitud; x++) {
        printf("%d ", arreglo[x]);
    }
}

int main() {
    int arregloA[10] = {1, 2, 3, 4, 5, 6, 7, 8, 1, 2};
    int arregloB[10] = {1, 2, 3, 4, 5, 6, 7, 8, 1, 2};
    int arregloC[10];//El resultante
    // Primero necesitamos la longitud de ambos arreglos. Como tienen la misma longitud, no importa cuál usemos
    int longitud = sizeof(arregloA) / sizeof(arregloA[0]);
    // Ahora empezamos un ciclo desde 0 hasta 10, pero tenemos dos contadores
    // uno nos ayuda a llevar posición del A, y el segundo del B (que irá decrementando)
    int contadorA = 0;
    int contadorB = longitud - 1;


    for (int x = 0; x < longitud; x++) {
        // Sumamos. Al inicio contadorA estará en 0 y contadorB en 9
        int suma = arregloA[contadorA] + arregloB[contadorB];
        arregloC[contadorA] = suma;
        // Avanzar en A y retroceder en B
        contadorA++;
        contadorB--;
    }
    printf("Arreglo A: ");
    imprimir_arreglo(arregloA, longitud);
    printf("\n");
    printf("Arreglo B: ");
    imprimir_arreglo(arregloB, longitud);
    printf("\n");
    printf("Arreglo C: ");
    imprimir_arreglo(arregloC, longitud);
    printf("\n");
}

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir ñ en impresora térmica

En este post te enseñaré a imprimir la letra ñ en una impresora térmica. Voy…

2 días hace

Tramitar acta de nacimiento en línea de manera instantánea

En este post te quiero compartir mi experiencia tramitando un acta de nacimiento de México…

3 días hace

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 semanas hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 semanas hace

Esta web usa cookies.