0

我试图在数组中加倍。问题是我必须将用户输入的结果存储在数组中。例如,我向用户询问初始人口、第一天和增长率。然后计算人口增长。我打算将增加的人口存储在一个数组中,有人可以帮忙吗?卡住。这是我的代码:

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
4

3 回答 3

0

您正在阅读tempPop, tempDay,tempRate一次并且永远不会更改它们。所以循环中的返回值getRate总是一样的。

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

于 2013-05-21T08:28:00.117 回答
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
于 2013-05-21T08:31:48.973 回答
-1

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

于 2013-05-21T08:25:01.070 回答