4 回答

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
解決這個(gè)問(wèn)題的方法是跟蹤最高降雨量的指數(shù)而不是值。您現(xiàn)在遇到的問(wèn)題是您有 2 個(gè)不同的數(shù)組,并且其中一個(gè)數(shù)組的值與另一個(gè)數(shù)組不相關(guān)。
為此,你可以這樣做:
public int getMaxRainfallIndex(double[] rainfall) {
int max = 0;
for (int i = 1; i < rainfall.length; i++)
if (rainfall[i] > rainfall[max]) {
max = i;
}
return max;
}
然后,您可以使用此返回值從原始 2 個(gè)數(shù)組中獲取實(shí)際降雨量和月份。
然而,一種更簡(jiǎn)潔的方法是創(chuàng)建一個(gè)單獨(dú)的類來(lái)存儲(chǔ)這兩條信息,這樣您就可以返回包含這兩條信息的整個(gè)對(duì)象。這樣你甚至不必?fù)?dān)心保留兩個(gè)單獨(dú)的數(shù)組。
可以這樣做:
public static void main(String[] args) {
Rainfall[] rainfall = new Rainfall[12];
//Do everything else
}
public class Rainfall {
private String month;
private double rainfall;
//Constructor, Getters + Setters
}

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
一個(gè)可能的解決方案是返回月份的索引,例如您的getMaxRainfall方法應(yīng)如下所示:
public int getMaxRainfallIndex(double[] rainfall)
{
int maxIndex = 0;
double max = rainfall[0];
for(int i = 1; i < rainfall.length; i++)
if(rainfall[i] > max)
{
max = rainfall[i];
maxIndex = i;
}
return maxIndex;
}
在您的中,main您應(yīng)該使用該索引來(lái)獲取月份和降雨量:
int index = amazon.getMaxRainfallIndex(rainfall);
system.out.println("month of max rainfall: " + months[index]);
system.out.println("max rainfall: " + rainfall[index]);

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以創(chuàng)建一個(gè)單獨(dú)的數(shù)組,而不是單獨(dú)管理兩個(gè)數(shù)組class:
public class RainfallByMonth {
private double rainfall;
private String month;
// Getter/Setters here
}
在你的主要方法中:
public static void main(String[] args) {
RainfallByMonth[] rainfallByMonths = new RainfallByMonth[12];
String[] months = new DateFormatSymbols().getMonths(); // array of months
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < rainfallByMonths.length; i++) {
System.out.println("How much rainfall did you receive, in inches, for the month of: " + months[i]);
rainfallByMonths[i].setMonth(months[i]);
rainfallByMonths[i].setRainfall(scanner.nextDouble());
}
RainfallByMonth maxRainfall = getMaxRainfall(rainfallByMonths);
// Now you can print the results here
}
按月計(jì)算最大降雨量:
public static RainfallByMonth getMaxRainfall(RainfallByMonth[] rainfallByMonths) {
RainfallByMonth maxRainfall = rainfallByMonths[0];
for(int i = 1; i < rainfallByMonths.length; i++) {
if(rainfallByMonths[i].getRainfall() > maxRainfall.getRainfall()) {
maxRainfall = rainfallByMonths[i];
}
}
return maxRainfall;
}
同樣,情況反之亦然min(只是條件不同)。這將更容易管理。

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
public static void main(String[] args) {
String[] months = {"January", "February", "March","April","May","June","July","August","September","October","November","December"};
int[] weather = {10, -1, 7,44,33,6,22,54,89,21,8,51};
int max = 0;
int index= 0;
for (int i=0;i<weather.length-1;i++ ){
if (weather[i] > m){
max = weather[i];
index= i;
}
}
System.out.println(months[index]);
}
查找最高月份的示例程序。要查找最低月份降雨量,請(qǐng)?jiān)趇f條件中使用小于符號(hào)
添加回答
舉報(bào)