哪位帮我看看红色部份为什么还能运行不报错,不是数组序号都变负的了吗java对这个问题是怎么解决的?
public class test1 {
public static int[][] yanghui(int n)
{
int mat[][]=new int[n][];
for(int i=0;i<n;i++)
{mat[i]=new int [i+1];
mat[i][0]=mat[i][i]=1;
for(int y=1;y<i;y++)
mat[i][y]=mat[i-1][y-1]+mat[i-1][y]; }
return mat;
}
public static void print(int x[][],int n)
{
for(int i=0;i<x.length;i++)
{for(int k=0;k<n-i;k++)
System.out.print(" ");
for(int j=0;j<x[i].length;j++)
System.out.print(" "+x[i][j]);
System.out.println();}
}
public static void main(String[] args)
{
int n=10;
print(yanghui(n),n);
}}
public class test1 {
public static int[][] yanghui(int n)
{
int mat[][]=new int[n][];
for(int i=0;i<n;i++)
{mat[i]=new int [i+1];
mat[i][0]=mat[i][i]=1;
for(int y=1;y<i;y++)
mat[i][y]=mat[i-1][y-1]+mat[i-1][y]; }
return mat;
}
public static void print(int x[][],int n)
{
for(int i=0;i<x.length;i++)
{for(int k=0;k<n-i;k++)
System.out.print(" ");
for(int j=0;j<x[i].length;j++)
System.out.print(" "+x[i][j]);
System.out.println();}
}
public static void main(String[] args)
{
int n=10;
print(yanghui(n),n);
}}
mat[i][y]=mat[i-1][y-1]+mat[i-1][y]; y初始值为1,-1也不等于零。
i初始值为0,y<i就不执行,走不到mat[i-1][y-1]
for(int y=1;y<i;y++)
i不到2也进入不到这个循环,哪里数组序号被负的了?