Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从方法存储在数组中_Java_Arrays_Methods_Input - Fatal编程技术网

Java 从方法存储在数组中

Java 从方法存储在数组中,java,arrays,methods,input,Java,Arrays,Methods,Input,我正试图在数组中添加一个双精度。问题是我必须将用户输入的结果存储在数组中。例如,我向用户询问初始人口、第一天和增长率。然后计算人口的增长。我要把人口的增长存储在一个数组中,有人能帮忙吗?卡住了。 这是我的密码: public static void main(String[] args) { Scanner kd = new Scanner(System.in); double tempPop, tempRate; int tempDay; double gr

我正试图在数组中添加一个双精度。问题是我必须将用户输入的结果存储在数组中。例如,我向用户询问初始人口、第一天和增长率。然后计算人口的增长。我要把人口的增长存储在一个数组中,有人能帮忙吗?卡住了。 这是我的密码:

public static void main(String[] args) {
    Scanner kd = new Scanner(System.in);


    double tempPop, tempRate;
    int tempDay;
    double growth;
    System.out.println("Enter Population: ");
    tempPop = kd.nextDouble();

    System.out.println("Enter Days: ");
    tempDay = kd.nextInt();

    System.out.println("Enter Rate: ");
    tempRate = kd.nextDouble();


    final double SCORES = tempDay;
    double scores [] = new double[(int) SCORES];

    for(int i = 0; i < SCORES; i++)
    {
        scores[i] = getRate(tempPop, tempDay, tempRate);
        System.out.println(scores[i]);
    }




}
public static double getRate(double tempPop, int tempDay, double tempRate)
{
    double popul, pops = 0;
    for (double day = 0; day <= tempDay; day++)
    {
        popul = tempPop + (tempPop * tempRate/100);

        pops = day*popul;

    }
    return pops;
}

摆脱
最终的双倍分数
,直接使用
tempDay
来计算
分数的大小
for
循环中的stop参数。

您正在阅读
tempPop
tempDay
tempRate
一次,永远不要更改它们。因此循环中
getRate
的返回值将始终相同


我不知道您想要实现什么,但我认为您必须根据循环中以前的计算更改至少一个参数。

这是您想要的吗?与其将tempDay的值传递到循环中(该值永远不会改变),不如将i的值传递到循环中(该值会增加,直到满足tempDay值)


你的代码有什么问题?
final double SCORES=tempDay;双倍分数[]=新的双倍分数[(国际)分数]为什么不直接使用
双倍分数[]=新的双倍[临时日]
?你的问题也不清楚,你在哪里/什么时候有错误,你有什么错误?对不起,我刚刚编辑了它。我得到了两个10.3,它没有存储所有不同的值,只是反复存储最后一个值。你调用getRate方法的次数与循环运行的次数相同,而不更改输入参数(这就是为什么它多次输出同一个答案的原因。这并没有什么区别,int和double是一样的,如果你的输入是int@rathyes就是这样,我仍然很困惑,但看到该做什么已经解决了问题,谢谢你的帮助。你在开始时阅读了三个参数,然后在for循环中将它们传递给e getRate方法。但是,每次for循环迭代时,它都使用相同的参数调用相同的getRate方法,而不进行任何更改。这意味着该方法始终返回相同的结果。在我的回答中,我发送了I+1而不是tempDay。这每次都发送相同的填充和速率,但更改了发送的日期,因此模式可以被显示。我发送了I+1,因为天显然是从1开始的,而不是从0开始。我编辑了我的答案,以显示我的输入值。希望这有帮助!哦,我明白了!每次我说天是2,它只是一遍又一遍地运行2。是的,所有这些帮助,都会记在心里,以备下次使用。让我明天的测试看起来真的很紧张!尝试修改我的所有内容ng
Enter Population: 
10
Enter Days: 
2
Enter Rate: 
3

10.3
10.3
double scores [] = new double[tempDay];
for(int i = 0; i < tempDay; i++) {
    scores[i] = getRate(tempPop, i + 1, tempRate);
    System.out.println(scores[i]);
}
Enter Population: 
10
Enter Days: 
2
Enter Rate: 
3
10.3
20.6