java.lang.ArrayIndexOutOfBounds异常
有人能帮我做作业吗?基本上,我试图创建的程序要求用户输入一个整数java.lang.ArrayIndexOutOfBounds异常,java,Java,有人能帮我做作业吗?基本上,我试图创建的程序要求用户输入一个整数N,然后对于两个单独的N个整数集,这些整数集存储在两个单独的数组(x和y)中,然后调用一个函数mixReverse(a,b),并将x和y作为参数。mixReverse(x,y)函数反转y数组中元素的顺序,然后将每个数组的元素交错到一个最终数组中,以便finalArray由arr1[0]、arr2[arr2.length-1]、arr1[1]、arr2[arr2.length-2]、。。。arr1[arr1.length-1],arr
N
,然后对于两个单独的N个整数集,这些整数集存储在两个单独的数组(x和y)中,然后调用一个函数mixReverse(a,b)
,并将x
和y
作为参数。mixReverse(x,y)
函数反转y数组中元素的顺序,然后将每个数组的元素交错到一个最终数组中,以便finalArray
由arr1[0]、arr2[arr2.length-1]、arr1[1]、arr2[arr2.length-2]、。。。arr1[arr1.length-1],arr2[0]
我已经尝试过这个代码,但它有问题:
finalArray[0] = arr1[0];
finalArray[1] = arr1[0];
for (int j=2; j<(2*arr1.length); j++) {
if (j%2==0) {
finalArray[j] = arr1[j/2];
}
else {
finalArray[j] = arr2[(((j+1)*(2))-1)];
}
}
finalArray[0]=arr1[0];
finalArray[1]=arr1[0];
对于(int j=2;j我会这样做(没有%2和if语句的不可读混乱)
int[]finalArray=newint[2*N];
对于(int i=0;i
我会这样做(没有%2和if语句的不可读混乱)
int[]finalArray=newint[2*N];
对于(int i=0;i
此行:
finalArray[j] = arr2[(((j+1)*(2))-1)];
看起来可疑。您使用的是arr2的项目7、11、15、e.t.c.,我认为这不是您想要的。此行:
finalArray[j] = arr2[(((j+1)*(2))-1)];
看起来可疑。您正在使用arr2的项目7、11、15、e.t.c.,我认为这不是您想要的。如果arr1的长度与arr2的长度相同,那么这部分就是问题所在:
arr2[(((j+1)*(2))-1)];
但是scibuff已经写了一个很好的答案。如果arr1的长度与arr2相同,那么这部分就是问题所在:
arr2[(((j+1)*(2))-1)];
但是scibuff已经写了一个很好的答案。上面失败的输入是什么?finalArray
在哪里初始化?“那么数组的长度是2*(arr1.length)”。哪个数组的长度?确定错误行吗?确定每个数组的长度吗?设置数组的代码在哪里?是否尝试使用调试器?是否尝试使用输出语句(System.out.println
或类似语句)要验证在执行过程中的各个点上的情况是否与您认为的一样?您是否尝试过任何方法?将代码段更改为一个简短但完整的程序来演示问题将非常有帮助…您能否显示finalArray
?可能您无意中创建的代码太小了。inp是什么ut在上述故障中?finalArray在哪里初始化?“那么数组的长度是2*(arr1.length)”。哪个数组的长度?确定错误行吗?确定每个数组的长度吗?设置数组的代码在哪里?是否尝试使用调试器?是否尝试使用输出语句(System.out.println
或类似)要验证在执行过程中的各个点上的情况是否与您认为的一样?您是否尝试过任何方法?将代码片段更改为一个简短但完整的程序,以演示问题将非常有用…您能否显示finalArray
?可能您无意中创建的代码太小了。谢谢,这非常有用更干净,我甚至没有想过这样做。谢谢你,这更干净,我甚至没有想过这样做。