日期:2014-05-20  浏览次数:20752 次

杨辉三角代码,
小弟刚刚学Java,刚刚编的一个杨辉三角的代码,感觉没问题,但是编译不通过,求解..
编译器指出的两处错误出处小弟已经用红色标出,应该很轻松,但是恕我眼拙,没弄清楚...第三处为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
求解...


import java.util.*;
public class Test
{
public static void yh_Triangle(int array[][],int rows)
{
for(int i=0;i<=rows;i++)
{
for(int j=0;j<=array[i].length-1;j++)
{
if(i==0||j==0||j==array[i].length-1)
array[i][j]=1;
else
array[i][j]=array[i-1][j]+array[i-1][j-1];
}
for(int m=0;m<=rows;m++)
{
for(int n=0;n<=array.length-1;n++)
System.out.print(array[m][n]+" "); System.out.println();
}
}

}

public static void main(String[] args)
{
final int rows=7;
int array[][]=new int[rows+1][];
for(int i=0;i<=rows;i++)
{
//循环初始化数组,为每一行分配i+1个数字
array[i]=new int [i+1];
}
System.out.println("杨辉三角如下:");
yh_Triangle(array,rows);
}
}

------解决方案--------------------
没测试,看上去是括号位置有问题:

Java code

for(int j=0;j<=array[i].length-1;j++)
{
if(i==0||j==0||j==array[i].length-1)
array[i][j]=1;
else
array[i][j]=array[i-1][j]+array[i-1][j-1];
}
for(int m=0;m<=rows;m++)
{
for(int n=0;n<=array.length-1;n++)
System.out.print(array[m][n]+" ");     System.out.println();
}
}

}

------解决方案--------------------
楼上所说的两个地方都改掉就行了,初学,还不错
------解决方案--------------------
有两处错误,一个时“}”错误,还有一个是数组下标不对