【发布时间】:2019-10-15 12:00:52
【问题描述】:
我有一种方法可以根据用户输入的月份数组计算最小和最大降雨量。我的问题是我的方法返回最小值和最大值的数量,我需要它返回降雨量最高或最低的月份。我不确定如何将我的 min 和 max 方法与月份数组进行比较。我想如果我可以说在索引 5 处找到了最小值,那么也有办法提取月份数组的索引 5。
我尝试了多种类型的 for 循环和嵌套 for 循环,但似乎无法获得正确的月份。
public static void main(String[] args) {
String[] months = {"January", "February", "March","April","May","June","July","August","September","October","November","December"};
double[] rainfall = new double[months.length];
Rainfall amazon = new Rainfall();
//scanner to get user input
Scanner scanner = new Scanner(System.in);
//for loop to iterate through the months to get user input of rainfall each month
for(int i = 0; i<rainfall.length; i++) {
System.out.println("How much rainfall did you recieve, in inches, for the month of: " + months[i]);
rainfall[i] = scanner.nextDouble();
//while statement to reject negative numbers
while(rainfall[i] < 0) {
System.out.println("You can not enter a negative number");
System.out.println("How much rainfall did you recieve for the month of: " + months[i]);
rainfall[i] = scanner.nextDouble();
}
}
System.out.println("total rainfall: " + amazon.getTotalRainfall(rainfall) +
" average Rainfall: " + amazon.getAverageRainfall(rainfall) +
" min: " + amazon.getMinRainfall(rainfall) +
" max: " + amazon.getMaxRainfall(rainfall));
}
public double getMaxRainfall(double[] rainfall) {
double max = rainfall[0];
for(int i = 1; i < rainfall.length; i++)
if(rainfall[i] > max) {
max = rainfall[i];
}
return max;
}
public double getMinRainfall(double[] rainfall) {
double min = rainfall[0];
for(int i = 1; i < rainfall.length; i++)
if(rainfall[i] < min) {
min = rainfall[i];
}
return min;
}
我需要知道降雨量最高和最低的月份
【问题讨论】:
-
为什么没有方法返回具有最小或最大降雨量的月份的
intindex,而不是实际的最小或最大降雨量值。