SoloCodigo
Programación General => C/C++ => C++ Builder => Mensaje iniciado por: rmbstyle en Martes 16 de Enero de 2007, 18:05
-
Buenas,
He buscado por el foro pero no he encontrado exactamente lo que queria. Mi problema es que no se como ir recorriendo una matriz desde afuera hacia dentro (empezando en el M[0][0]) en el sentido de las agujas del reloj.
La cosa es que no se me ocurre nada, el recorrido deberia ser asi:
1 3 4
5 2 7
9 8 6
Entonces, tengo que obtener un vector con la espiral: (1,3,4,7,6,8,9,5,2).
Alguien me echa una mano?
Gracias!
Saludos
-
podrias fijarte cuatro limites: LimDer = Cantidad de columnas, LimInf = Cantidad de filas, LimIzq = 1, LimSup = 2
Recorre con un FOR desde [1,1] hasta LimDer
Dejpuej decrementa en 1 LimDer
Recorre con un FOR desde donde te quedaste hasta LimInf
Dejpuej decrementa en 1 LimInf
Recorre con un FOR desde donde te quedaste hasta LimIzq
Dejpuej Incrementa en 1 LimIzq
Recorre con un FOR desde donde te quedaste hasta LimSup
Dejpuej Incrementa en 1 LimSup
Con eso se recorreria la primer vuelta, pero quedaria listo para la segunda vuelta.
Es la logica de tu problema.
BYTE.