求助大佬,为什么结果不对呢?
查看原帖
求助大佬,为什么结果不对呢?
1089623
aouyou楼主2024/9/22 11:17
#include <iostream>
using namespace std;
int a[41][41];
int main()
{
	int n;
	cin >> n;
	a[1][(n + 1) / 2] = 1;
	int x = 1, y = (n + 1) / 2;
	for (int i = 2; i <= n * n; i++)
	{
		if (x == 1 && y != n)
		{
			a[n][y + 1] = i;
			x = n, y = y + 1;
		}
		else if (x != 1 && y == n)
		{
			a[x - 1][1] = i;
			x = x - 1, y = 1;
		}
		else if (x == 1 && y == n)
		{
			a[x + 1][y] = i;
			x = x + 1;
			y = y;
		}
		else if (x != 1 && y != n)
		{
			if (!a[x - 1][y + 1])
			{
				a[x - 1][y + 1] = i;
				x = x - 1, y = y + 1;
			}
			else
			{
				a[x + 1][y] = i;
				x = x + 1;
				y = y;
			}
		}
		
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= n; j++)
			{
				cout << a[i][j] << " ";
				
			}
			cout << "\n";
		}
	}
	return 0;
}
2024/9/22 11:17
加载中...