Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - xabi100

#1
Programación C/C++ / extraer submatrices
27 Diciembre 2020, 18:23 PM
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.

#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);
}