黑马程序员技术交流社区

标题: 用C实现矩阵的环形 [打印本页]

作者: norwood    时间: 2015-8-11 17:03
标题: 用C实现矩阵的环形
如题,实现的功能如下
1       2       3       4
12   13      14       5
11   16      15       6
10   9         8        7
求讨论!

作者: 15095185209    时间: 2015-8-12 09:05
这个好像得用到数组,新人也不是很懂~有个java的实现螺旋矩阵的,你看看或许会有帮助!

        输出 n=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  
        代码:
                int SIZE = 5;
                int arr[][] = new int[SIZE][SIZE];
                int i, j, k = 0, n, m;
                n = SIZE;
                m = (n + 1) / 2;
                for (i = 0; i < n; i++) {
                        // 顶边,从左到右,行不变列变
                        for (j = i; j <= n - i - 1; j++)
                                arr[i][j] = ++k;// 输出1、2、3、4、13、14
                       
                        // 右边,从上到下,行变列不变
                        for (j = i + 1; j <= n - i - 1; j++)
                                arr[j][n - i - 1] = ++k; // 输出5、6、7、15
                       
                        // 底边,从右到左,行不变列变
                        for (j = n - i - 2; j >= i; j--)
                                arr[n - i - 1][j] = ++k; // 输出8、9、10、16
                       
                        // 左边,从下到上,行变列不变
                        for (j = n - i - 2; j >= i + 1; j--)
                                arr[j][i] = ++k; // 输出11、12
                }
                for (i = 0; i < n; i++) {
                        for (j = 0; j < n; j++)
                                System.out.print(arr[i][j] + "\t");
                        System.out.println("");
                }
作者: ylxkab    时间: 2015-8-12 19:59
照搬就行了

作者: norwood    时间: 2015-8-13 11:55
ylxkab 发表于 2015-8-12 19:59
照搬就行了

自己写出来那感觉酸爽
作者: lixianzhu0712    时间: 2015-8-13 20:24
15095185209 发表于 2015-8-12 09:05
这个好像得用到数组,新人也不是很懂~有个java的实现螺旋矩阵的,你看看或许会有帮助!

        输出 n=5 的螺旋 ...

很棒!!!!!!!!!!!!!!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2