本地试所有数据都是正确的,不知道为什么过不了,说格式哪里有问题吗?? 麻烦大佬帮忙看看吧!!
#include <iostream>
using namespace std;
int main()
{
int n = 0;
cin >> n;
int arr[100] = {};
int p = n;
if (n == 1)
arr[1] = 1;
else if (n == 2)
{
arr[1] = 1;
arr[2] = 2;
arr[3] = 4;
arr[4] = 3;
}
else
{
int m = 1;
int x = 1;
int y = 1;
int q = 1;
int begin = 1;
for(int i=1;i<=n*n;p=p-2)
{
for ( m = 0; m < p&&i<=n*n; m++)
{
arr[m+begin] = i;
i++;
}
for ( x = 1; x <= p - 1 && i <= n * n; x++)
{
arr[p-1+begin+ n* x] = i;
i++;
}
for (y = 1; y <= p - 1 && i <= n * n; y++)
{
arr[p-1 + begin + n * (p-1) - y] = i;
i++;
}
for (q = 1; q <= p - 2 && i <= n * n; q++)
{
arr[p - 1 + begin + (n-1) * (p - 1) - q * n] = i;
i++;
}
begin = p - 1 + begin + (n-1)*(p-1) - (p-2) * n+1;
}
}
for (int i = 1; i <= n*n; i++)
{
if (arr[i] <= 9 && i % n == 1)
cout << " " << arr[i] << " ";
else if (arr[i] <= 9 && i % n != 1)
cout << " " << arr[i] << " ";
else if (arr[i] > 9 && i % n == 1)
cout << " " << arr[i] << " ";
else
cout << arr[i] << " ";
if (i % n == 0&&i!=n*n)
cout << endl;
}
}