编辑器中自己测试没问题,为什么all wa
查看原帖
编辑器中自己测试没问题,为什么all wa
1804600
lianqingct楼主2025/8/1 11:55

代码如下

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);

    int m[n][n],t=1,i=0,j=0,nff=1;
    for (i = 0;i<n;i++){                //m[n][n]初始化
        for (j = 0;j<n;j++)
            m[i][j] = 0;
    }
    i = 0, j = 0;

    while (t <= n * n){                 //实现主体
        if (m[i][j] == 0) {
            m[i][j] = t++;
        }

        if(nff==1){
            while(j+1<n&&m[i][j+1] == 0){
                if(t>n*n)
                    break;
                m[i][++j] = t++;
            }
            nff=2;
            i++;
        }
        else if(nff==2){
             while(i+1<n&&m[i+1][j] == 0){
                if(t>n*n)
                    break;
                m[++i][j] = t++;
            }
            nff=3;
            j--;
        }
        else if(nff==3){
            while(j-1>=0&&m[i][j-1] == 0){
                if(t>n*n)
                    break;
                m[i][--j] = t++;
            }
            nff=4;
            i--;
        }
        else{
            while(i-1>=0&&m[i-1][j] == 0){
                if(t>n*n)
                    break;
                m[--i][j] = t++;
            }
            nff=1;
            j++;
        }
    }

    for (i = 0;i<n;i++){                    //打印
        for (j = 0;j<n;j++){
            if(m[i][j]<10)printf(" %d ", m[i][j]);
            else printf("%d ", m[i][j]);
        }
        printf("\n");
    }
    return 0;
}
2025/8/1 11:55
加载中...