有乘法数组的问题

时间:2015-04-11 12:35:42

标签: java

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工作,但我不能让最后二十五个工作。我已经尝试了所有我能想到的东西,在经过几个小时的撞击墙壁后,最后一次迭代是什么。

3 个答案:

答案 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;

等等