for(int i = 0; i < this.wid - 2 * roll -1 ; i ++) //为数组第一行前wid - roll - 1个数据赋值 arr[roll][roll] ---- arr[roll][this.wid - 2 * roll -2]
{
this.arr[roll][roll + i] = start;
start ++;
}
if(start > wid * wid) return; //当下一个该赋值数据大于 num * num 时候跳出循环
for (int i = 0; i < this.wid- 2* roll -1; i++)//为数组最后一排前wid - roll - 1个数据赋值 arr[roll][this.wid - 2 * roll -1] ---- arr[this.wid- 2 * roll -2][this.wid - 2 * roll -1]
{
this.arr[roll + i][this.wid - roll - 1] = start;
start ++;
}
if(start > wid * wid) return;
for(int i = this.wid - 2* roll - 1; i > 0; i --)//为数组最后-行后wid - roll - 1个数据赋值arr[this.with - 2 * roll -1][this.wid - 2 * roll -1] ---- arr[this.wid - 2 * roll -1][roll + 1]
{
this.arr[this.wid - roll - 1][roll + i] = start;
start ++;
}
if(start > wid * wid) return;
for(int i = this.wid - 2 * roll - 1; i > 0; i --)//为数组第一排后 wid - roll -1 个数据赋值arr[this.wid - 2 * roll - 1][roll] ---- arr[roll + 1][roll]
为什么这个代码在运行时输入n=4时,该出现数字15的位置反而出现17呢,而n=5时,输出就正确了,不解???作者: 道逍云心 时间: 2014-1-4 21:14
public class Test9 {
public static void main(String[] args){
//定义数组的长度
int len = 10;
//调用得到螺旋数组的方法
int[][] arys = getSpiralArray(len);
//用for循环嵌套,对数组进行遍历输出
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len; j++)
{