Matriz en caracol de adentro hacia afuera


01 de Abril del 2017

Hola!

Estoy intentando generar una matriz en caracol de adentro hacia afuera, mi código actual solo la genera de afuera hacia adentro.

Pueden ayudarme con el código para generar la matriz de adentro hacia afuera.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
{

int paso=1,cont=1;
int a[50][50];
int grado;
cout<<"Ingrese la matriz a generar: ";
cin>>grado;
for(int k=0;k<grado;k++)for(int j=0;j<grado;j++)a[k][j]=0;

for(int i=0;i<grado;i++){

if(paso==1){
for(int j=0;j<grado;j++){
if(a[i][j] == 0)
a[i][j]=cont++;
}
}
paso++;


if(paso==2){
for(int j=0;j<grado;j++){
if(a[j][grado-(i+1)]==0)
a[j][grado-(i+1)]=cont++;
}
}


paso++;
if(paso==3){
for(int j=grado-1;j>=0;j--){
if(a[grado-(i+1)][j] == 0)
a[grado-(i+1)][j]=cont++;
}
}
paso++;

if(paso==4){
for(int j=grado-1;j>=0;j--){
if(a[j][i] == 0)
a[j][i]=cont++;
}
}
paso=1;


}
for(int ii=0;ii<grado;ii++){
for(int j=0;j<grado;j++){
if(a[ii][j]<10)cout<<"0"; cout<<a[ii][j]<<" ";
}
cout<<endl;}
getchar();

}

 


system("PAUSE");
return EXIT_SUCCESS;
}