c++80分第四个点过不了求助
查看原帖
c++80分第四个点过不了求助
892520
Do_Do_Fish楼主2022/12/22 12:13

本地试所有数据都是正确的,不知道为什么过不了,说格式哪里有问题吗?? 麻烦大佬帮忙看看吧!!

#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;
	}
}
2022/12/22 12:13
加载中...