这是我用结构体写出的抽象写法?但只有60求助
#include<bits/stdc++.h>
using namespace std;
int n, ans[25][25];
struct edge
{
int x, y;
} b[200];
int main()
{
cin >> n;
b[1].x = 1;
b[1].y = n / 2 + 1;
ans[1][n / 2 + 1] = 1;
for (int i = 2; i <= n * n; i++)
{
if (b[i - 1].x == 1)
{
if (b[i - 1].y == n)
{
b[i].x = b[i - 1].x + 1;
b[i].y = b[i - 1].y;
ans[b[i].x][b[i].y] = i;
}
else
{
b[i].x = n;
b[i].y = b[i - 1].y + 1;
ans[b[i].x][b[i].y] = i;
}
}
else if (b[i - 1].y == n)
{
b[i].x = b[i - 1].x - 1;
b[i].y = 1;
ans[b[i].x][b[i].y] = i;
}
else if (ans[b[i - 1].x - 1][b[i - 1].y + 1] == 0)
{
b[i].x = b[i - 1].x - 1;
b[i].y = b[i - 1].y + 1;
ans[b[i].x][b[i].y] = i;
}
else
{
b[i].x = b[i - 1].x + 1;
b[i].y = b[i - 1].y;
ans[b[i].x][b[i].y] = i;
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
cout << ans[i][j] << " ";
}
cout << endl;
}
return 0;
}