Hola, necesito hacer un programa en c que extraiga submatrices cuadradas (k*k) de una matriz dada (m*n), calculando la suma de los elementos de cada submatriz y devuelva la submatriz con la suma mayor.
he hecho un codigo pero no me da lo que esperaba. en este caso k=2.
he hecho un codigo pero no me da lo que esperaba. en este caso k=2.
Código (c) [Seleccionar]
#include<stdio.h>
#include<stdlib.h>
int suma(int m[2][2]);
void main(void){
int matriz[5][4]={{1,2,2,4},{3,9,4,5},{6,7,2,1},{4,4,3,1},{0,0,3,8}};
int submatriz[2][2];
int i,j,fila,columna,mayorsuma;
fila=0;columna=0;
mayorsuma=15;
for(i=0;i<5;i++){
for(j=0;j<4;j++){
for(int k=i;k<i+2;k++){
for(int p=j;p<j+2;p++){
submatriz[k][p]= matriz[k][p];
if(suma(submatriz)> mayorsuma){
mayorsuma=suma(submatriz);
fila=k;
columna=p;}
}
}
}
}
printf ("mayorsuma = %d \n",mayorsuma );
printf ("fila = %d \n",fila );
printf ("columna = %d \n",columna );
}
int suma(int m[2][2]){
int i,j;
int sum=0;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
sum=sum+m[i][j];
}
}
return (sum);
}