#java
#java
Вопрос:
Мне нужно получить индекс наибольшего суммарного значения из трех параллельных массивов, чтобы иметь возможность отображать год с наибольшим количеством снегопадов. Возможно, я ошибаюсь. Может кто-нибудь объяснить процесс или дать мне конструктивную обратную связь? Это то, что у меня есть до сих пор. Я просто играл с кодом, чтобы попытаться понять это. Я знаю, что есть много способов, но надеялся на что-то простое для понимания новичком. Спасибо за ваше время.
public class tempSnowfall {
public static void main(String[] args) {
String[] years =
{
"1952", "1953", "1954", "1955",
"1956", "1957", "1958", "1959",
"1960", "1961", "1962", "1963",
"1964", "1965", "1966", "1967",
"1968", "1969", "1970", "1971",
"1972", "1973", "1974", "1975",
"1976", "1977", "1978", "1979",
"1980", "1981", "1982", "1983",
"1984", "1985", "1986", "1987",
"1988", "1989", "1990", "1991",
"1992", "1993", "1994", "1995",
"1996", "1997", "1998", "1999",
"2000", "2001", "2002", "2003",
"2004", "2005", "2006", "2007",
"2008", "2009", "2010", "2011",
"2012", "2013", "2014", "2015",
"2016"
};
double snowJan[] =
{
3.9, 0.0, 0.0, 2.8,
0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.0, 5.3, 0.0, 2.0,
0.5, 7.2, 4.5, 8.5,
6.0, 1.0, 1.3, 0.3,
1.5, 0.0, 8.0,17.5,
0.0, 3.5, 1.0, 3.0,
3.3,30.5, 0.0, 0.0,
0.0, 4.6, 0.0, 1.8,
0.0, 2.5, 2.1, 0.0,
0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.7, 0.0, 7.2, 1.1,
0.2, 0.3, 5.2, 2.0,
1.2, 0.4, 0.0,11.5,
9.9
};
double snowFeb[] =
{
0.0, 0.0, 0.0, 5.5,
0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.0, 5.3, 0.0, 2.0,
0.5, 7.2, 4.5, 8.5,
6.0, 1.0, 1.3, 0.3,
1.5, 0.0, 8.0,17.5,
0.0, 3.5, 1.0, 3.0,
3.3,30.5, 0.0, 0.0,
0.0, 4.6, 0.0, 1.8,
0.0, 2.5, 2.1, 0.0,
0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.7, 0.0, 7.2, 1.1,
0.2, 0.3, 5.2, 2.0,
1.2, 0.4, 0.0,11.5,
9.9
};
double snowMar[] =
{
2.9, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 3.5,
0.0, 0.6, 0.0, 0.0,
2.0, 0.0, 0.0, 0.6,
2.0, 0.5, 0.0, 0.0,
4.0, 0.0, 0.0, 4.0,
0.0, 2.5, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.8, 0.0, 1.7, 3.5,
2.5, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0,
0.0, 0.8, 0.0, 0.0,
3.2, 0.3, 0.0, 0.0,
0.0, 1.3, 3.1, 4.0,
0.0
};
double sum = 0;
double largest = 0;
for (int i = 0; i < years.length; i )
{
sum = (snowJan[i] snowFeb[i] snowMar[i]);
if(sum > largest)
{
largest = sum;
}
}
System.out.println(largest);
}
}
Ответ №1:
Вам нужно будет сохранить индекс того, где были наибольшие значения (в вашем случае i
)
double sum = 0;
double largest = 0;
int index = 0;
for (int i = 0; i < years.length; i )
{
sum = (snowJan[i] snowFeb[i] snowMar[i]);
if(sum > largest)
{
largest = sum;
index = i;
}
}
System.out.printf("%f amount of snow fell in %s %n", largest, years[index]);