Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Buscando matríz dentro de matríz

Estas en el tema de Buscando matríz dentro de matríz en el foro de C/C++ en Foros del Web. Tengo mi código para según buscar una submatriz en mi matriz, pero me sale un error al dar las entradas: Violación de segmento la entrada ...
  #1 (permalink)  
Antiguo 26/08/2011, 21:22
 
Fecha de Ingreso: julio-2011
Ubicación: Querétaro México
Mensajes: 34
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Buscando matríz dentro de matríz

Tengo mi código para según buscar una submatriz en mi matriz, pero me sale un error al dar las entradas: Violación de segmento
la entrada es así:

4 5<- Ren y Col
2 1 9 8 2
4 2 1 8 2 <-- matriz
6 4 2 5 3
4 2 3 9 0

2 2 <- r y c
2 1 <-- matriz que hay que encontrar cuantas veces aparece en la matriz grande
4 2


Salida:

2

Cita:
#include<iostream>
#include<cstdlib>
using namespace std;
int Col,Ren,c,r,I,J,i,j,cont;
int matrz[1005][1005];
int sub[1005][1005];
bool can;
int entrada(){
for(i=0;i<Ren;i++)
for(j=0;j<Col;j++)
cin>>matrz[i][j];

cin>>r>>c;
for(i=0;i<r;i++)
for(j=0;j<c;j++)
cin>>sub[i][j];
}
int main(){

cin>>Ren>>Col;
entrada();

for(I=0;I<Ren;I++){
for(J=0;J<Col;J++){
if(matrz[I][J]==sub[0][0]){

for(i=0;i<Col+c;i++){
for(j=0;j<Ren+r;i++){

if(sub[i][j]==matrz[I+i][J+j])
can=true;


}}
if(can==true)cont++;
can=false;
}




}}
cout<<"----->"<<cont;
return 0;
}
ayuda D,:!
  #2 (permalink)  
Antiguo 27/08/2011, 07:51
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 5 meses
Puntos: 61
Respuesta: Buscando matríz dentro de matríz

Si recorres para comparar por igualdad, recorrelas usando indices por filas y columnas de manera similar. En el main, hay 4 ciclos for, mientras uno hace avanzar un indice hasta llegar al limite de filas el otro hace avanzar a i hasta el limite de columnas.

Etiquetas: matriz, programacion, segmento, soluciones, submatrices, submatriz, violación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:58.