拐角处有问题
查看原帖
拐角处有问题
542290
zhx454983510楼主2021/7/22 10:16

输出结果为: 4 13 2 3 4 12 13 14 15 11 16 15 6 10 9 16 7

#include <stdio.h>
#define M 9
#define N 9

int main()
{
   int direction=4,a[M][N]={1},i=0,j=0,n,q=1; 
   scanf("%d",&n);
   while(a[i][j]<n*n)
   {
       if(direction==4)
       {
       	a[i][j+1]=a[i][j]+1;
       	if(j==n-q)
       	{
       		direction=3;
       	}
       	else {
       		direction=4;
       		j=j+1;
       	}
   	}
   	else if(direction==3)
   	{
   		a[i+1][j]=a[i][j]+1;
   		if(i==n-q)
   		{
   			direction=1;
   		}
   		else {
   			direction=3;
   			i=i+1;
   		}
   	}
   	else if(direction==1)
   	{
   		a[i][j-1]=a[i][j]+1;
   		if(j==q-1)
   		{
   			direction=2;
   		}
   		else {
   			direction=1;
   			j=j-1;
   		}
   	}
   	else
   	{
   		a[i-1][j]=a[i][j]+1;
   		if(i==q)
   		{
   			direction=4;
   			q++;
   		}
   		else {
   			direction=2;
   			i=i-1;
   		}
   	}
   		
   }
   for(i=0;i<n;i++)
   {
   	for(j=0;j<n;j++)
   	{
   		printf("%3d",a[i][j]);
   	}
   	printf("\n");
   }
}
2021/7/22 10:16
加载中...