1490 数据结构:螺旋方阵

 1 #include <iostream>
 2 #define MAX_SIZE 100+1
 3 using namespace std; 5 int array[MAX_SIZE][MAX_SIZE];
 6 int creatScrewMatrix(int n)
 7 {
 8     int upBound=0,downBound=n-1,leftBound=0,rightBound=n-1;//上下左右边界初始化
 9     int num=1;
10     while(upBound<=downBound && leftBound<=rightBound)
11     {
12         for (int i = leftBound; i <=rightBound; ++i)
13             array[upBound][i]=num++;
14         for (int i = ++upBound; i <=downBound; ++i)
15             array[i][rightBound]=num++;
16         for (int i = --rightBound; i >= leftBound; --i)
17             array[downBound][i]=num++;
18         for (int i = --downBound; i >=upBound; --i)
19             array[i][leftBound]=num++;
20         leftBound++;
21     }
22 }
23 void printScrewMatrix(int n)
24 {
25     for (int i = 0; i < n; ++i)
26     {
27         for (int j = 0; j < n; ++j)
28             j==0?printf("%d",array[i][j]) : printf(" %d",array[i][j]);
29         printf("\n");
30     }
31     printf("\n");
32 }
33 int main(int argc, char const *argv[])
34 {
35     #ifndef _OJ_  //ONLINE_JUDGE
36     freopen("input.txt", "r", stdin);
37     #endif
38     int n;
39     scanf("%d",&n);
40     creatScrewMatrix(n);
41     printScrewMatrix(n);
42     return 0;
43 }

 

posted @ 2015-02-13 17:59  swanGooseMan  阅读(279)  评论(0编辑  收藏  举报