想问下这Java代码哪里出了问题

package myproject;

import java.lang.reflect.Array;
import java.util.Arrays;

public class Poetry {
public static void main(String[] args)
{
int a[][]=new int [10][];

        for(int i=0;i<10;i++)
        {
            Arrays.fill(a[i], 1);
        }
        for(int k=3;k<10;k++)
        for(int i=1;i<k-1;i++)
        {
            a[k][i]=a[k-1][i-1]+a[k-1][i];
        }
        
        for(int i = 0;i<10;i++)
        {
          for(int j=0;j<a[i].length;j++)
          {
              System.out.print(" "+(a[i][j]));
          }
          System.out.print("\n");
        }
        
    }

}

有问题,int a[][]=new int [10][];是二维数组,一维的大小没指定。
代码修改如下:

import java.util.Arrays;
public class Poetry {
    public static void main(String[] args)
    {
        int a[][]=new int [10][10];
        for(int i=0;i<10;i++)
        {   //a[i]=new int[10];
            Arrays.fill(a[i], 1);
        }
        for(int k=3;k<10;k++)
            for(int i=1;i<k-1;i++)
            {
                a[k][i]=a[k-1][i-1]+a[k-1][i];
            }

        for(int i = 0;i<10;i++)
        {
            for(int j=0;j<a[i].length;j++)
            {
                System.out.print(" "+(a[i][j]));
            }
            System.out.print("\n");
        }
    }
}

https://blog.csdn.net/fengqilai112/article/details/100667279
看这个对你有没有帮助

初始化的二维数组,内部数组没有初始化,所以在第一个for循环赋值时获取到的a[i]是空的无法赋值。
解决:将 int a[][]=new int [10][]; 修改为 int a[][] = new int[10][10];

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632