#include<stdio.h>
main(){
int b[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int a[20][20],i,j,k,m=1,N;
int direct=0;
system("cls");
printf("Input a number 1=<N<=20/n");
scanf("%d",&N);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=0;
k=N*N;
i=0;
j=0;
while(k){
a[i][j]=m;
i+=b[direct][0];
j+=b[direct][1];
if(i==N||j==N||a[i][j]||i<0||j<0){
i-=b[direct][0];
j-=b[direct][1];
direct=(direct+1)%4;
i+=b[direct][0];
j+=b[direct][1];
}
m++;
k--;
}
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("%3d ",a[i][j]);
}
printf("/n");
}
getch();
}
main(){
int b[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int a[20][20],i,j,k,m=1,N;
int direct=0;
system("cls");
printf("Input a number 1=<N<=20/n");
scanf("%d",&N);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=0;
k=N*N;
i=0;
j=0;
while(k){
a[i][j]=m;
i+=b[direct][0];
j+=b[direct][1];
if(i==N||j==N||a[i][j]||i<0||j<0){
i-=b[direct][0];
j-=b[direct][1];
direct=(direct+1)%4;
i+=b[direct][0];
j+=b[direct][1];
}
m++;
k--;
}
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("%3d ",a[i][j]);
}
printf("/n");
}
getch();
}