小弟刚刚学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);
}
}

解决方案 »

  1.   

    没测试,看上去是括号位置有问题:
    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();
    }
    }}
    改成下面试试。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();
    }
    //}  //去掉.}
      

  2.   

    这句有错:
    for(int n=0;n<=array.length-1;n++)
    改成: for(int n=0;n<=array[m].length-1;n++)