課題でとても迷っており、助けが必要です! 基本的に、ユーザーが 12 か月間の 1 か月あたりの降水量 (インチ) を入力できるコードを作成することを想定しています。合計インチ、平均インチを計算し、さらに雨が最も多い月と最も少ない月を指摘します。合計インチと平均インチを管理しています。
ただし、雨が最も多く、最も少ないのは、私が問題を抱えている場所です。降水量の最大値と最小値を計算するコードの書き方は知っていますが、出力で実際の月を実際に表示する方法はわかりません。12 か月の配列に実際の数値をリストする必要があります。たとえば、7 か月目は 7 です。
私が抱えているもう1つの問題は、10進形式です。import ステートメントを一番上に置き、正しいコードだと思ったものを本文の正しい場所に入れましたが、平均を計算すると、それでも長い数字列が生成されます。つまり、12.1 を表示したい場合は 12.12121314141 です。
どんな助けでも大歓迎です。前もって感謝します!コードは次のとおりです。
import java.util.Scanner;
import java.text.DecimalFormat;
public class Rainfall
{
public static void main (String [] args)
{
final int MONTHS = 12;
double[] rainFall = new double[MONTHS];
initRain(rainFall);
DecimalFormat formatter = new DecimalFormat("##0.0");
System.out.println("The total rainfall for this year is " +
totalRain(rainFall));
System.out.println("The average rainfall for this year is " +
averageRain(rainFall));
System.out.println("The month with the highest amount of rain is " +
highest);
System.out.println("The month with the lowest amount of rain is " +
leastRain(rainFall));
}
/**
totalRain method
@return The total rain fall in the array.
*/
public static double totalRain(double[] rainFall)
{
double total = 0.0; // Accumulator
// Accumulate the sum of the elements in the rain fall array
for (int index = 0; index < rainFall.length; index++)
//total += rainFall[index];
total = total + rainFall[index];
// Return the total.
return total;
}
/**
averageRain method
@return The average rain fall in the array.
*/
public static double averageRain(double[] rainFall)
{
return totalRain(rainFall) / rainFall.length;
}
/**
mostRain method
@return The most rain in the rain fall array.
*/
public static double mostRain(double[] rainFall)
{
double highest = rainFall[0];
for (int index = 0; index < rainFall.length; index++)
{
if (rainFall[index] > highest)
highest = rainFall[index];
}
return highest;
}
/**
leastRain method
@returns The least rain in rain fall array.
*/
public static double leastRain(double[] rainFall)
{
double lowest = rainFall[0];
for (int index = 0; index < rainFall.length; index++)
{
if (rainFall[index] < lowest)
lowest = rainFall[index];
}
return lowest;
}
/**
initRain method
@return The rain fall array filled with user input
*/
public static void initRain(double[] array)
{
double input; // To hold user input.
Scanner scan = new Scanner(System.in);
for (int index = 0; index < array.length; index++)
{
System.out.print("Enter rain fall for month " + (index + 1)
+": ");
array[index] = scan.nextDouble();
}
}
}