gpt4 book ai didi

java - 打印 3D 数组转换为 2D

转载 作者:行者123 更新时间:2023-12-01 09:26:42 25 4
gpt4 key购买 nike

我正在尝试添加给定的 3D 数组并将其打印为 D。此外,我必须从给定的 3D 数组中获取数组 [0] 和 [1] 并将其相应位置添加到 2D 数组中,然后添加它们.

例如,如果 3D 数组具有以下 2D 矩阵

> Array[0] : {1,2,3},
>
> {4,5,6}
>
>
> Array[1] : {1,1,1},
>
> {1,1,1}

应该打印二维数组

     {2,3,4},
>
> {5,6,7}

这是我的代码。但是,它给出了以下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at ThreeDRay.add(ThreeDRay.java:53)
at ThreeDRayRunner.main(ThreeDRayRunner.java:53)

53 行是:

for (int j=0; j<b[j].length;j++)

但我不知道它出了什么问题:

public static void add(int[][][]array){

int [][] b = new int[array[0].length][array[0][0].length];

for (int x=0; x<array.length;x++){
for (int y=0; y<array[0].length;y++){
for (int z=0; z<array[0][0].length;z++){
b[y][z] += array[x][y][z];
}
}
}

System.out.println ("Adding matrix at 0 and matrix at 1 ");

for (int i=0; i<b.length;i++){
for (int j=0; j<b[j].length;j++){
System.out.print(b[i][j]);
}
System.out.println();
}
}
}

最佳答案

for (int j=0; j<b[j].length;j++)
{
System.out.print(b[i][j]);
}

在这里,您采用的 b[j] 长度可能会超出范围,因为稍后您将采用不同的数组 (b[i])。只需在 for 循环中执行 b[i].length 即可修复该问题。请记住,for 循环在每次迭代之前检查条件,而不仅仅是在创建时检查。

关于java - 打印 3D 数组转换为 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39774850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com