求助:为什么会到 i=2就停下来了
查看原帖
求助:为什么会到 i=2就停下来了
1117468
kaikaiyu楼主2023/10/23 13:09
#include <stdio.h>
#include <math.h>
int main(void)
{
     int n;
     scanf("%d",&n);
     int a[40][40]={0};
     a[1][(n+1)/2]=1;

     for(int i=2;i<=n*n;i++)
     {
        int j=1,v=1;
        for( j=1;j<=n;j++)
        {
            v=1;
            for( v=1;v<=n;v++)
            {
                if( a[j][v]==i-1 && j==1 && v!=n)  {a[n][v+1]=i;break;}
                if( a[j][v]==i-1 && v==n && j!=1)  {a[j+1][1]=i;break;}
                if( a[j][v]==i-1 && j==1 && v==n)  {a[j-1][v]=i;break;}
                if( a[j][v]==i-1 && j!=1 && v!=n && a[j+1][v+1]==0)  {a[j+1][v+1]=i;break;}
                if( a[j][v]==i-1 && j!=1 && v!=n && a[j+1][v+1]!=0)  {a[j-1][v]=i;break;}
            }
        }
     }
     for(int i=1;i<=n;i++)
     {
         for(int j=1;j<=n;j++)
         {
            printf("%d ",a[i][j]);
         }
         printf("\n");
     }
    return 0;
}
2023/10/23 13:09
加载中...