luoxuan.cpp

来自「数字输出成螺旋状」· C++ 代码 · 共 37 行

CPP
37
字号
 #include <iostream.h> 
 #include<iomanip.h> 
 int temp,m[30][30]={0,}; 
 void Helix(int min,int max) 
 {     
     for(int i=min;i<max;i++) 
     { 
        m[min][i]=temp+i-min; 
        m[i][max]=temp+(max-min)+i-min; 
        m[max][i+1]=temp+3*(max-min)-(i-min+1); 
        m[i+1][min]=temp+4*(max-min)-(i-min+1); 
    } 
    temp+=4*(max-min);     
 }
void main() 
{         
    while(1) 
    { 
        int N,min(0),max; 
        cout<<" 输入螺旋矩阵的行列数N(1~20),输入字母 退出:"; 
        cin>>N;         
        if(N<1 || N>30) 
            break; 
        max=N-1; 
        temp=1; 
        if(N%2==1) 
            m[N/2][N/2]=N*N; 
        for(int i=0;i<N/2;i++) 
            Helix(min++,max--); 
        for(i=0;i<N;i++) 
        { 
            for(int j=0;j<N;j++) 
                cout<<setw(3)<<m[i][j]<<' '; 
            cout<<endl; 
        } 
    }     
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?