从方法存储在Array中

时间:2013-05-21 08:19:24

标签: java arrays methods input

我试图在数组中加倍。问题是我必须存储数组中用户输入的结果。例如,我向用户询问初始人口,第一天和增加率。然后计算人口的增长。我的意思是存储阵列中的人口增长,任何人都可以帮忙吗?卡住。 继承我的代码:

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;
}

}

这是我的输出:(仅示例)

Enter Population: 
10
Enter Days: 
2
Enter Rate: 
3

10.3
10.3

3 个答案:

答案 0 :(得分:0)

您正在阅读tempPoptempDaytempRate一次并且永远不会更改它们。因此,循环中getRate的返回值将始终相同。

我不确切地知道你想要实现什么,但我认为你必须根据循环中的先前计算改变至少一个参数。

答案 1 :(得分:0)

这是你想要的吗?不是将tempDay的值传递给永不改变的循环,而是传递i的值(它会增加直到达到tempDay值)。

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

答案 2 :(得分:-1)

摆脱final double SCORES并直接使用tempDay获取scores的大小和for循环中的停止参数。