だから私はすべてが点を除いて働いてきた私は、必要な入力を入力したら、私はこのような入力を取得:ループの検証と出力の問題
1 5.0
2 6.0
3 7.0
4 8.0
それはそのないようだと、私は私が間違ってやっているのか分かりません私が入力した成長率50に基づいて右増分で増加しています。また、翌日には生物数も増加しません。助言がありますか?あなたが行の整数形式としてgrowthRateの入力を取っている
//Purpose of program to predict population of organisms
import java.util.Scanner;
public class Population {
public static void main(String[] args) {
double growthRate = -1;
int population = 0;
int days = -1;
double popResult = 0;
Scanner keyboard = new Scanner(System.in);
System.out.println("\nEnter the starting number of organisms:");
population = keyboard.nextInt();
while (population < 2) {
System.out.println("\nError!! Please re-enter number of organisms.");
population = keyboard.nextInt();
}
System.out.println("\nEnter rate of growth as percentage:");
growthRate = keyboard.nextInt()/100;
while (growthRate < 0) {
System.out.println("\nError!! Growth rate must be a positive number. Please re-enter.");
growthRate = keyboard.nextInt();
}
System.out.println("\nEnter number of days organisms will grow:");
days = keyboard.nextInt();
while (days < 0) {
System.out.println("\nError!! Number of days cannot be less than 1. Please re-enter.");
days = keyboard.nextInt();
}
System.out.println("Days" + "\t" + "Organisms");
System.out.println("------------------");
popResult = population;
growthRate = growthRate/100;
for (int numberOfDays = 1; numberOfDays < days; numberOfDays++) {
System.out.println(numberOfDays + "\t" + popResult);
popResult = (popResult * growthRate) + popResult;
}
}
}
'keyboard.nextInt()/ 100'は整数除算です。結果は常に整数になります。 'double'の結果が必要な場合は、オペランドの1つを' double'にキャストします。 – ajb
私は問題を解決しますか? – Icodin