码迷,mamicode.com
首页 > 编程语言 > 详细

数组-13. 螺旋方阵

时间:2015-01-21 19:56:52      阅读:2953      评论:0      收藏:0      [点我收藏+]

标签:

数组-13. 螺旋方阵(20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard

所谓“螺旋方阵”,是指对任意给定的N,将1到N*N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入NxN的方阵里。本题要求构造这样的螺旋方阵。

输入格式:

输入在一行中给出一个正整数N(<10)。

输出格式:

输出NxN的螺旋方阵。每行N个数字,每个数字占3位。

输入样例:
5
输出样例:
  1  2  3  4  5
 16 17 18 19  6
 15 24 25 20  7
 14 23 22 21  8
 13 12 11 10  9
 1 #include<stdio.h>
 2 #include<math.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 int main()
 6 {
 7     int n, a[15][15];
 8     memset(a, 0, sizeof(a));
 9     scanf("%d", &n);
10     int i = 1, j = 1, k = 1;
11     while(k <= n * n)
12     {
13         while(j <= n)
14         {
15             if(!a[i][j])
16                 a[i][j++] = k++;
17             else
18                 break;
19         }
20         j--;
21         i++;
22         while(i <= n)
23         {
24             if(!a[i][j])
25                 a[i++][j] = k++;
26             else
27                 break;
28         }
29         i--;
30         j--;
31         while(j > 0)
32         {
33             if(!a[i][j])
34                 a[i][j--] = k++;
35             else
36                 break;
37         }
38         j++;
39         i--;
40         while(i > 0)
41         {
42             if(!a[i][j])
43                 a[i--][j] = k++;
44             else
45                 break;
46         }
47         i++;
48         j++;
49     }
50     for(i = 1; i <= n; i++)
51     {
52         for(j = 1; j < n; j++)
53             printf("%3d", a[i][j]);
54         printf("%3d\n", a[i][j]);
55     }
56     return 0;
57 }

 

数组-13. 螺旋方阵

标签:

原文地址:http://www.cnblogs.com/yomman/p/4239776.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!