大佬求改
查看原帖
大佬求改
1340936
guimei121212楼主2024/8/30 12:50
#include <iostream>
using namespace std;

int main(){
    int n,num=0;
    cin>>n;
    int a[n][n];
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            a[i][j]=0;
        }
    }
    
    a[1][n/2+1]=1;
    num++;
    int h=1,l=n/2+1,g=1;
    
    
    while(num!=n*n){
        int tf=false;
        if(h==1){
            h=n;
            if(l==n){
                if(a[h][1]==0){
                    l=1;
                    g+=1;
                    a[h][l]=g;
                    num++;
                    tf=true;
                }
                
            }else{
                if(a[h][l+1]==0){
                    l+=1;
                    g+=1;
                    a[h][l]=g;
                    num++;
                    tf=true;
                }
            }
        }else {
            if(a[h-1][l]==0){
                h-=1;
                g+=1;
                a[h][l]=g;
                num++;
                tf=true;
            }
        }
        
        if(tf=false){
            if(h==n){
                h=1;
                g+=1;
                a[h][l]=g;
                num++;
            }else{
                h-=1;
                g+=1;
                a[h][l]=g;
                num++;
            }
        }
    }
    
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cout<<a[i][j]<<' ';
        }
        cout<<endl;
    }
}
2024/8/30 12:50
加载中...