import java.util.*;
public class Main {
public static void main(String[] args) {
double[] temp = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
double[] tripple = {26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50};
for (int i = 0; i < temp.length; i++) {
temp[i] = (int) Math.pow(temp[i], 2);
}
for (double value : temp) {
System.out.println(value);
}
for (int k = 26; k < 50; k++) {
tripple[k] = (int) Math.pow(temp[k], 3);
}
for (double value : tripple) {
System.out.println(value);
}
}
}
我一直试图让我的第二个阵列从26开始给出立方数。到目前为止,我有1-25工作,但我不能让最后二十五个工作。我已经尝试了所有我能想到的东西,在经过几个小时的撞击墙壁后,最后一次迭代是什么。
答案 0 :(得分:1)
错误在这一行:
for (int k = 26; k < 50; k++)
数组tripple
中的索引不是从26到50,而是从0到数组的长度。
for (int k = 0; k < tripple.length; k++)
答案 1 :(得分:1)
此循环不正确,因为它使用值而不是索引:
for (int k = 26; k < 50; k++) {
tripple[k] = (int) Math.pow(temp[k], 3);
}
将运算符[i]
应用于数组时,意味着“将位置i
的元素从零开始计算”。 不意味着“给我一个价值为i
的元素。”
k
需要从零到tripple.length()
,就像i
在第一个for
循环中一样。
答案 2 :(得分:0)
这是两个不同的数组。 两者都将从0开始。 所以你需要在第二个数组中使用以下内容。
for(int k=0;k<tripple.length;k++){}
这意味着
triple[0]=26;
等等。
您在下面的行中使用了temp数组还有一件事
tripple[k] = (int) Math.pow(temp[k], 3);
此处临时数组中的值不同。
temp[0]=1;
temp[1]=4;
等等