#include<stdio.h>
#define M 32
#define N 32
void account( int a[M ][N ],int x, int s ,int q, int o)
{
if (x > 0)
{
int a[M][N] = { 0 };
int i = 0;
for (int v=q; v <= x; v++)
{
a[s][v] = o + i;
i++;
}
for (int v=q+1 ; v <= x ; v++)
{
a[v][x] = o + i;
i++;
}
for (int v = x - 1; v >= s; v--)
{
a[x][v] = o + i;
i++;
}
for (int v = x - 1; v >= s + 1; v--)
{
a[v][s] = o + i;
i++;
}
account(a[M][N], x - 2, s + 1, q + 1, o + i);
}
}
int main()
{
int a[32][32] = { 0 };
int n;
int u = 1;
int z = 1;
int p = 1;
scanf_s("%d", &n);
account(a[32][32], n,u,z,p);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (j == n)printf("%4d\n", a[i][j]);
else printf("%4d", a[i][j]);
}
}
return 0;
}
你这个题目是什么?
你题目的解答代码如下:
#include <stdio.h>
#define M 32
#define N 32
void account(int a[M][N], int x, int s, int q, int o)
{
if (x > 0)
{
//7int a[M][N] = {0};
int i = 0;
for (int v = q; v <= x; v++)
{
a[s][v] = o + i;
i++;
}
for (int v = q + 1; v <= x; v++)
{
a[v][x] = o + i;
i++;
}
for (int v = x - 1; v >= s; v--)
{
a[x][v] = o + i;
i++;
}
for (int v = x - 1; v >= s + 1; v--)
{
a[v][s] = o + i;
i++;
}
account(a, x - 2, s + 1, q + 1, o + i);
}
}
int main()
{
int a[32][32] = {0};
int n;
int u = 1;
int z = 1;
int p = 1;
scanf_s("%d", &n);
account(a, n, u, z, p);
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (j == n)
printf("%4d\n", a[i][j]);
else
printf("%4d", a[i][j]);
}
}
return 0;
}
如有帮助,望采纳!谢谢!