代码如下;
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int array[39][39]{ 0 };
array[0][(n - 1) / 2] = 1;
int i = 0, j = (n - 1) / 2;
for (int k = 2; k <= n * n; k++)
{
if (i == 0 && j != n - 1)
{
i = n - 1;
j++;
array[i][j] = k;
}
else if (j == n - 1 && i != 0)
{
j = 0;
i--;
array[i][j] = k;
}
else if (i == 0 && j == n - 1)
{
i++;
array[i][j] = k;
}
else if (array[i - 1][j + 1] == 0)
{
i--;
j++;
array[i][j] = k;
}
else
{
i++;
array[i][j] = k;
}
}
for (int i = 0; array[i][0] != 0 && i < 39; i++)
{
for (int j = 0; array[i][j] != 0 && j < 39; j++)
cout << array[i][j] << ' ';
cout << endl;
}
return 0;
}
#2始终说我的第二行答案太长,我下数据来看了,一个一个核对没有问题,这是什么情况???