A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ven 中级黑马   /  2015-8-1 13:19  /  542 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

偶然翻到之前学习数组时写的一个关于二维数组的tools,在这里分享给大家,这个可以打印出螺旋结构的数字,赋值过程的代码的条件不是很好把控,小生写的还算详细,希望可以帮到正在学习二维数组的部分童鞋,
/*
*                这是一个二维数组打印的工具类,
*                可以打印出螺旋结构的数字,分享给大家
*/


class ArrayArrayDemo1
{
        public static void main(String[] args)
        {       
                int n=4;
                int arr[][]=new int[n][n];
                int a,b,c;
                int z=1;
                //数组元素赋值,这里面的过程实现很难考虑到那么完全
                for (int i=0;i<n ; i++)
                {
                        //上面的一行,从左到右,行数不变,列数++
                        for (a=i;a<=n-1-i ; a++)//n行的螺旋方阵上面的一行不能运行第n-1次
                        {
                                arr[i][a]=z++;
                        }
                        //右边的一行,从上到下,列数不变,行数++
                        for ( a=i+1;a<=n-1-i ;a++ )//n行的螺旋方阵右面的一行不能运行第n-1次
                        {
                                arr[a][n-1-i]=z++;
                        }
                        //下面的一行,从左到右,行数不变,列数--
                        for ( a=n-1-1-i;a>= i;a-- )//n行的螺旋方阵下面的一行不能运行第n-1次
                        {
                                arr[n-1-i][a]=z++;
                        }
                        //左边的一行,从下到上,列数不变,行数--
                        for ( a=n-1-1-i;a>=i+1;a-- )//n行的螺旋方阵,左边的行数不可能运行到第n-2次,
                        {
                                arr[a][i]=z++;
                        }
                }
                //遍历,打印二维数组
                for (int x=0;x<n ;x++ )
                {
                        for (int y=0;y<n ;y++ )
                        {
                                System.out.print(arr[x][y]+"\t");
                        }
                        System.out.println();
                }
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马