我有一个练习,找出出了什么问题。我会感激的帮助:)
编写将具有两个int类型数组和更大的返回数组(如果两个数组中的一个更大)以及与数组相同位置的元素的总和的代码。
public class TwoArrays {
public static void main(String[] args) {
int[] arrayA = {1, 5, 2, 6, 8};
int[] arrayB = {4, 5, 7, 10, 7, 9, 7};
int lengthA = arrayA.length;
int lengthB = arrayB.length;
int i=0;
if (lengthA < lengthB) {
for (arrayB[i] = 0; i < lengthB; i++) {
arrayB[i] = arrayA[i] + arrayB[i];
System.out.println(arrayB[i]);
}
} else if (lengthA > lengthB) {
for (arrayA[i] = 0; i < lengthA; i++) {
arrayA[i] = arrayA[i] + arrayB[i];
System.out.println(arrayA[i]);
}
} else {
for (arrayB[i] = 0; i < lengthB; i++) {
arrayB[i] = arrayA[i] + arrayB[i];
System.out.println(arrayB[i]);
}
}
}
}
尝试再次检查第一个For-Loop的条件。如果您尝试访问大于数组长度的数组位置,您将获得java.lang.ArrayIndexOutOfBoundsException.如果您无法理解此代码,我建议您应该尝试调试此代码。
代码中几乎没有更正。
在上面几行中,如果索引值(I)超过lengthA或lengthB的长度,JVM可能会抛出ArrayIndexOutOfBoundsException。所以应该在每次迭代中检查它。一旦索引值超过lengthA或lengthB,零可以作为默认值添加到arrayB[i]中。所以我使用三元运算符来检查每次迭代的索引值。3.并且不需要else if块。因为我们只使用了2个数组,这对于您来说已经足够了。
修改代码:
public class TwoArrays {
public static void main(String[] args) {
int[] arrayA = {1, 5, 2, 6, 8};
int[] arrayB = {4, 5, 7, 10, 7, 9, 7};
int lengthA = arrayA.length;
int lengthB = arrayB.length;
if (lengthA < lengthB) {
for (int i = 0; i < lengthB; i++) {
int temp = i < lengthA ? arrayA[i] : 0; // used ternary operator here
arrayB[i] = arrayB[i] + temp;
System.out.println(arrayB[i]);
}
} else {
for (int i = 0; i < lengthA; i++) {
int temp = i < lengthB ? arrayB[i] : 0; // used ternary operator here
arrayA[i] = arrayA[i] + temp;
System.out.println(arrayA[i]);
}
}
}
}
应该是
for (int i = 0; i < lengthB; i++)
当你使用
for (arrayB[i] = 0; i < lengthB; i++)
您将数组的第一个元素设置为 0,而不是您可能想要的 i index 变量。
此外,您应该做一些事情,比如找到哪个数组更大,然后使用bigArray=arrayA, Small Array=arrayB之类的变量。然后,您只需为Loop编写一个。
问题 你想从数组中删除相同元素。 解决方案 Array::unique = -> output = {} output[@[key]] = @[key] for key in [0...@length] value for key, value of output [1,1,2,2,2,3,4,5,6,6,6,"a","a","b","d","b","c"].unique() # =
在R中,我可以在矩阵和(共形)向量之间进行分段乘法,例如: 矩阵的每一行都与相应的向量元素相乘。我也可以对维度大于2的数组做同样的事情: 同样,每一行都与相应的向量元素相乘。我能为3d阵列和2d矩阵做类似的事情吗?我只想让数组中的每个子矩阵都按元素乘以一个矩阵。
本文向大家介绍Java程序的数组元素相乘,包括了Java程序的数组元素相乘的使用技巧和注意事项,需要的朋友参考一下 查找数组元素的乘积。 创建一个空变量(product)。 用1初始化它。 在循环中遍历每个元素(或从用户那里获取每个元素)将每个元素乘以乘积。 打印乘积(product)。 示例 输出结果
我有办法转移arr元素: 当我执行这段代码时,我遇到了一个异常: 据我所知,程序需要更多的空间来包含另一个项目。但是我不需要添加更多的项目,我需要已经存在的移动。用参数,如果参数为负,所有数组向左移动,如果为正向右移动,如果为零-什么都不会发生。
我有一个单词流,我想根据相同元素的出现对它们进行排序。 例如:{hello,world,hello} 至 你好,{你好,你好} 谢谢你