#include<stdio.h>
#include<stdlib.h>
#define N 5
int main(void)
{
int num[N][N];
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
num[i][j]=0;
}
}
i=0;j=0;
int tag=0;
int k=1;
while(k<=25)
{
num[i][j]=k;
k++;
switch(tag)
{
case 0:
if(j>=N-1||num[i][j+1]!=0)
{
tag=(tag+1)%4;
i++;
}
else j++;
break;
case 1:
if(i>=N-1||num[i+1][j]!=0)
{
tag=(tag+1)%4;
j--;
}
else i++;
break;
case 2:
if(j<=0||num[i][j-1]!=0)
{
tag=(tag+1)%4;
i--;
}
else j--;
break;
case 3:
if(num[i-1][j]!=0)
{
tag=(tag+1)%4;
j++;
}
else i--;
break;
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%d\t",num[i][j]);
}
printf("\n");
}
return 0;
}
#include<stdlib.h>
#define N 5
int main(void)
{
int num[N][N];
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
num[i][j]=0;
}
}
i=0;j=0;
int tag=0;
int k=1;
while(k<=25)
{
num[i][j]=k;
k++;
switch(tag)
{
case 0:
if(j>=N-1||num[i][j+1]!=0)
{
tag=(tag+1)%4;
i++;
}
else j++;
break;
case 1:
if(i>=N-1||num[i+1][j]!=0)
{
tag=(tag+1)%4;
j--;
}
else i++;
break;
case 2:
if(j<=0||num[i][j-1]!=0)
{
tag=(tag+1)%4;
i--;
}
else j--;
break;
case 3:
if(num[i-1][j]!=0)
{
tag=(tag+1)%4;
j++;
}
else i--;
break;
}
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%d\t",num[i][j]);
}
printf("\n");
}
return 0;
}

