he hecho un codigo pero no me da lo que esperaba. en este caso k=2.
Código
#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;} } } } } } 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); }