为什么不对,谢谢大佬指点
查看原帖
为什么不对,谢谢大佬指点
1148955
crowndream楼主2023/10/29 16:27
#include<stdio.h>
int main ()
{
	int i,j,k,n=0;
	scanf("%d",&n);
	int a[40][40];
	a[0][n/2]=1;
	int h=0;
	int l=n/2;
	for(i=2;i<=n*n;i++)
	{
		if(h==0&&l!=n-1)
		{
			a[n-1][l+1]=i;
			h=n-1;
			l+=1;
		}
		else if(l==n-1&&h!=0)
		{
			a[h-1][0]=i;
			h-=1;
			l=0;
		}
		else if(h==0&&l==n-1)
		{
			a[h+1][l]=i;
			h+=1;
		}
		else if(h!=0&&l!=n-1)
		{
			if(a[h-1][l+1]==0&&h-1>=0&&l+1<=n)
			{
				a[h-1][l+1]=i;
				h-=1;
				l+=1;
			}
			else
			{
				a[h+1][l]=i;
				h+=1;
			}
		}
	}
	for(j=0;j<n;j++)
	{
		for(k=0;k<n;k++)
		{
			printf("%d ",a[j][k]);
		}
		printf("\n");
	}
	return 0;
 }
2023/10/29 16:27
加载中...