int main()
{
int a[MAX][MAX];
int n;
int i, j;
printf ("n:");
scanf ("%d", &n);
fill (a, n);
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
printf (" %4d", a[i][j]);
printf ("\n");
}
system ("pause");
}
void fill (int a[MAX][MAX], int n)
{
int i, j;
int s = 1;
int x = 0, y = 0;
int d[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
for (; n > 1; n -= 2)
{
for (i = 0; i < 4; ++i)
for (j = 1; j < n; ++j)
{
a[x][y] = s++;
x += d[i][0];
y += d[i][1];
}
x++;
y++;
}
if (n == 1)
a[x][y] = s;
int main()
{
int a[MAX][MAX];
int n;
int i, j;
printf ("n:");
scanf ("%d", &n);
fill (a, n);
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
printf (" %4d", a[i][j]);
printf ("\n");
}
system ("pause");
}
void fill (int a[MAX][MAX], int n)
{
int i, j;
int s = 1;
int x = 0, y = 0;
int d[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
for (; n > 1; n -= 2)
{
for (i = 0; i < 4; ++i)
for (j = 1; j < n; ++j)
{
a[x][y] = s++;
x += d[i][0];
y += d[i][1];
}
x++;
y++;
}
if (n == 1)
a[x][y] = s;