我想知道如何用Java中的循环填充一个参差不齐的数组。 在我的例子中,我想把Pascals Triangle放在Array中。当我试图做它衣衫褴褛,( // int [] [] hako = new int [n] []; - >据我了解;它给出了java.lang.NullPointerException。 感谢
int n = 12, r = 1;
int [][] hako = new int [n][];
for(int i = 0; i < n; i++){
for(int j = 0; j < r; j++){
hako[i][j] = newton(i, j);
}
r++;
}
static int factorial(int n){
int k = 1;
if(n == 0)
return 1;
while(n>1){
k*=n;
n--;
}
return k;
}
static int newton(int i, int j){
return factorial(i)/((factorial(j))*(factorial(i-j)));
}
答案 0 :(得分:0)
您需要将hako[i]
初始化为数组,然后才能将变量分配给其中的索引,即hako[i][j]
。
int n = 12, r = 1;
int [][] hako = new int [n][];
for(int i = 0; i < n; i++){
for(int j = 0; j < r; j++){
// need to initialize hako[i]
hako[i] = new int[r];
hako[i][j] = newton(i, j);
}
r++;
}
答案 1 :(得分:0)
你的hako,是一个矩阵,但你只初始化一个维度,因此你的NullPointerException
修复它尝试
for(int i = 0; i < n; i++){
hako[i] = new int[r];
for(int j = 0; j < r; j++){
hako[i][j] = newton(i, j);
}
r++;
}
答案 2 :(得分:0)
public static void main(String[] args) {
int y[][] = new int[4][];
int four =4;
for (int row = 0; row < y.length; row++) {
y[row] = new int[four--];
}
RaggedArray(y);
for (int row = 0; row < y.length; row++) {
for (int column = 0; column < y[row].length; column++) {
System.out.print(y[row][column] + " ");
}
System.out.println();
}
}
public static void RaggedArray(int x[][]) {
int j;
for (int i = 0; i < x.length; i++) {
int k=1;
for (j = 0;j<x[i].length ; j++) {
x[i][j] = k++;
}
}
}}
您可以更改大小并将其填充任何数据。我希望它对您有用,并且任何人都可以看到此代码。