Anteriormente hemos visto cómo obtener el promedio de un arreglo; ahora vamos a ver cómo obtener la sumatoria y promedio de una matriz en C; será casi lo mismo pero con dos ciclos for
.
Es decir, ahora vamos a obtener el promedio y la sumatoria de una matriz de dos dimensiones.
Sumatoria y promedio de matriz en C
El algoritmo es realmente sencillo. Recorremos la matriz y vamos sumando cada valor a una variable llamada sumatoria.
Para obtener el promedio, dividimos la sumatoria entre la cantidad de elementos, que será el resultado de multiplicar las filas por las columnas.
Al final vamos a tener la sumatoria y el promedio.
Código fuente
Ahora que ya he mencionado el algoritmo, veamos el código fuente. Primero definimos la matriz:
#define ALTURA 3
#define ANCHURA 3
int matriz[ALTURA][ANCHURA] = {
{20, 50, 80},
{500, 12, 44},
{56, 4, 3},
};
Después declaramos la sumatoria y la cantidad de elementos:
// Necesitamos la sumatoria, al inicio es 0 y después vamos aumentándola
int sumatoria = 0;
int cantidadElementos = ALTURA * ANCHURA;
Ahora recorremos la matriz y vamos sumando cada elemento:
// Recorrer la matriz y sumar
for (int y = 0; y < ALTURA; y++) {
for (int x = 0; x < ANCHURA; x++) {
int elementoActual = matriz[y][x];
sumatoria = sumatoria + elementoActual;
}
}
Finalmente calculamos el promedio e imprimimos los valores:
// El promedio es = sumatoria / cantidadDeElementos
double promedio = (float) sumatoria / (float) cantidadElementos;
printf("Sumatoria: %d\n", sumatoria);
printf("Promedio: %0.2f\n", promedio);
Entonces el código completo queda como se ve a continuación:
/**
* Sumatoria y promedio de matriz en C
*
* @author parzibyte
* https://parzibyte.me/blog
*
* */
#define ALTURA 3
#define ANCHURA 3
#include <stdio.h> // Para printf
int main() {
int matriz[ALTURA][ANCHURA] = {
{20, 50, 80},
{500, 12, 44},
{56, 4, 3},
};
// Necesitamos la sumatoria, al inicio es 0 y después vamos aumentándola
int sumatoria = 0;
int cantidadElementos = ALTURA * ANCHURA;
// Recorrer la matriz y sumar
for (int y = 0; y < ALTURA; y++) {
for (int x = 0; x < ANCHURA; x++) {
int elementoActual = matriz[y][x];
sumatoria = sumatoria + elementoActual;
}
}
// El promedio es = sumatoria / cantidadDeElementos
double promedio = (float) sumatoria / (float) cantidadElementos;
printf("Sumatoria: %d\n", sumatoria);
printf("Promedio: %0.2f\n", promedio);
return 0;
}
En mi caso la salida es la de la imagen: