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