流云の剑舞秋风

吾生也有涯 而知也无涯

博客园 首页 新随笔 联系 订阅 管理

 1#include <iostream.h>
 2#include<iomanip.h>
 3int temp,m[30][30]={0,};
 4void Helix(int min,int max)
 5{    
 6    for(int i=min;i<max;i++)
 7    {
 8        m[min][i]=temp+i-min;
 9        m[i][max]=temp+(max-min)+i-min;
10        m[max][i+1]=temp+3*(max-min)-(i-min+1);
11        m[i+1][min]=temp+4*(max-min)-(i-min+1);
12    }

13    temp+=4*(max-min);    
14}

15void main()
16{        
17    while(1)
18    {
19        int N,min(0),max;
20        cout<<" 输入螺旋矩阵的行列数N(1~20),输入字母 退出:";
21        cin>>N;        
22        if(N<1 || N>30)
23            break;
24        max=N-1;
25        temp=1;
26        if(N%2==1)
27            m[N/2][N/2]=N*N;
28        for(int i=0;i<N/2;i++)
29            Helix(min++,max--);
30        for(i=0;i<N;i++)
31        {
32            for(int j=0;j<N;j++)
33                cout<<setw(3)<<m[i][j]<<' ';
34            cout<<endl;
35        }

36    }
    
37}
posted on 2005-05-08 17:00  流云  阅读(678)  评论(0编辑  收藏  举报