黑马程序员技术交流社区
标题:
螺旋二维数组简单代码有注释
[打印本页]
作者:
巧克黑力
时间:
2015-9-11 19:24
标题:
螺旋二维数组简单代码有注释
<font color="#800080"><p style="line-height: 30px; text-indent: 2em;"></p><div style="text-align: center;"><span style="line-height: 2.2em;"><p style="line-height: 30px; text-indent: 2em;"></p><div style="text-align: left;"><span style="line-height: 2.2em;">import java.util.Scanner;</span></div></span></div>
public class luoxuan {
public static void main(String[] args) {
//scanner键盘输入整数,
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
//定义变量和数组
int num =1;
int [][] arr = new int [N][N];
int m =0,i,j;
//判断输入整数的奇偶。
if(N%2 == 0)
m = N/2;
else
m = N/2+1;
// ^ --->
// | |
// <--- v
//就是个圈圈,每走一行或一列,都会少一,看下面代码就知道很多都是对应的。
for(i=0 ; i<= m-1 ; i++)
{
for(j =i ; j <=N-i-1 ;j++)//--> 0行,行不变,列变arr的i是固定的j在变,
{
arr[i][j] = num;
num++;
}
for(j =i+1 ; j <=N-i-1 ;j++)//| N-i-1列,就是最右侧一列,不变,行在变j。
{
arr[j][N-i-1] = num;
num++;
}
for(j =N-i-2 ; j >=i ;j--)//<-- N-i-1行不变,j列在变,逐渐在缩小,
{
arr[N-i-1][j] = num;
num++;
}
for(j =N-i-2 ; j >=i+1 ;j--)//| 第i列不变,行在逐渐缩小。
{
arr[j][i] = num;
num++;
}
}
for(i =0 ; i <N ;i++)
{
for(j =0 ;j <N ;j++)
{
System.out.print(arr[i][j]+"\t");//打印数组数据。
}
//打印空换行。
System.out.println("");
}
//关闭Scanner
sc.close();
}
}</font>
复制代码
作者:
巧克黑力
时间:
2015-9-11 19:25
代码最上面是设置文字颜色和字体的 不用管它。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2