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

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

1 semana hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

1 semana hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

2 semanas hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

3 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

3 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.