Hola comunidad elhacker.net!
Necesito ayuda tratando de generar la siguiente sucesion de matrices:
(http://img139.imageshack.us/img139/9683/01ac4.jpg) (http://imageshack.us)
(http://img139.imageshack.us/img139/01ac4.jpg/1/w552.png) (http://g.imageshack.us/img139/01ac4.jpg/1/)
Osea, ingresar un entero (el orden de la matriz), y que el programa devuelva la matriz 'espiral' de dicho orden.
¿Alguna idea para generar dicha matriz?
Programo en Java, con el JCreator.
Gracias por su tiempo, salu2 !
Hola :D
Antes que nada decirte que por aqui a ese llenado le dicen el caracol, y tambien mencionarte que ya estaba resuelto mas abajo :P
Metodo LLenar Matriz Caracol
public static void llenarmatrizcaracol(int mat[][],int n,int m)
{
int fil,col,aux,cont,k; //Nos creamos variables de tipo entero
cont=1; //Inicializamos un contador
for(k=0;k<m;k++)
{
col=k;
for(fil=k;fil<=(m-1-k);fil++)
{
mat[fil][col]=cont;
cont++;
}
fil=m-1-k;
for(col=k+1;col<=n-1-k;col++)
{
mat[fil][col]=cont;
cont++;
}
col=n-1-k;
for(fil=m-2-k;fil>=k;fil--)
{
mat[fil][col]=cont;
cont++;
}
fil=k;
for(col=n-2-k;col>=k+1;col--)
{
mat[fil][col]=cont;
cont++;
}
}
return;
}
Método Mostrar Matriz
public static void mostrarmatriz(int mat[][],int n,int m)
{
for(int fil=0;fil<m;fil++)
{
System.out.println("");
for(int col=0;col<n;col++)
{
System.out.print("\t"+mat[fil][col]);
}
}
return;
}
Método Main
public static void main(String args[])
{
int mat[][]; //Creamos una matriz
int n,m; //Creamos variables
mat=new int[1000][1000]; //Inicializamos la matriz
n=5; //Inicializamos las variables
m=5;
llenarmatrizfila(mat,n,m); //Llamamos el metodo para llenar la matriz
mostrarmatriz(mat,n,m); //Imprimimos en pantalla la matriz
}
Listo, esta hecho en java
Un saludo
OHK
Muchas gracias ;D
En verdad, no sabía como buscarlo... se me ocurrio decirle 'espiral', aunque resultó ser 'caracol' :xD
Muchas gracias nuevamente :rolleyes:
hola amigo, se q ese codigo lo hiciste para java, pero quiero pedirte de favor que si me lo puedes hacer para c++
perdona que moleste a estas horas pero me urge para mañana,
de antemano muchisimas gracias