求助大佬,只有20分
查看原帖
求助大佬,只有20分
788016
AOY616楼主2023/8/14 00:12

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a[20][20];
    int x=1,y=0,k=1;
    while(k<=n*n)//向右,在向下,向左,向上 
    {//条件是不越界然后右边没有东西
        while(y<n&&!a[x][y+1])
        {
            a[x][y+1]=k;
            y++;
            k++;
        }
        while(x<n&&!a[x+1][y])
        {
            a[x+1][y]=k;
            x++;
            k++;
        }
        while(y>1&&!a[x][y-1])
        {
            a[x][y-1]=k;
            y--;
            k++;
        }
        while(x>1&&!a[x-1][y])
        {
            a[x-1][y]=k;
            x--;
            k++;
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            printf("%3d",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

2023/8/14 00:12
加载中...