【发布时间】:2016-01-27 10:16:15
【问题描述】:
我正在开发一个程序,该程序接受用户输入(温度)并将其放入数组中。我对必须创建的最后一种方法感到困惑。我需要遍历数组并从最小到最大打印它们。我需要使用 while 循环来执行此操作。
问题是我需要索引与温度值保持一致。该指数代表测量温度的日期。我已经有一种方法可以找到数组中的最小值并将其与索引一起打印出来。
我可以只使用我已有的方法并在新方法中使用它吗?如果是这样,我不知道如何在执行 while 循环时调用该方法。我要尝试做的是找到最小值并打印值和索引,然后将值更改为我的“未初始化”变量,以便我可以找到下一个最小值等等。
我的代码“LeastToGreatest”中的最后一个方法是我尝试这样做,但它不起作用。几个小时以来,我一直在努力尝试自己解决这个问题。我不知道我需要做什么,也不知道我需要如何组织它才能让它工作。
这是我所拥有的:
public class Weather {
static int lowestTemp;
static int lowestDay;
private static final int Uninitialized = -999;
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] high = new int[32];
FindLowestTempInArray(low);
System.out.println("\n" + "The lowest low is: " + lowestTemp + " degrees." + "\n"
+ "This temperature was recorded on day: " + lowestDay);
LeastToGreatest(low);
System.out.println("\n" + lowestDay + " " + lowestTemp + "\n");
}
public static int FindLowestTempInArray(int[] T) {
// Returns the index of the lowest temperature in array T
lowestTemp = Uninitialized;
lowestDay = 0;
for (int day = 0; day < T.length; day++) {
if (T[day] != Uninitialized && (T[day] < lowestTemp || lowestTemp == Uninitialized)) {
lowestTemp = T[day];
lowestDay = day;
}
Arrays.asList(T).indexOf(lowestDay);
}
return lowestDay;
}
public static void LeastToGreatest(int[] T) {
lowestTemp = Uninitialized;
lowestDay = 0;
while (lowestDay >= 0 && lowestDay <= 31) {
for (int day = 0; day < T.length; day++) {
if (T[day] != Uninitialized && (T[day] < lowestTemp || lowestTemp == Uninitialized)) {
lowestTemp = T[day];
lowestDay = day;
}
}
}
}
}
【问题讨论】:
-
如果我这样做,我会将温度和天数存储为数组中的两列,因此数组将是 2x31 的 int。然后我会按温度场对其进行排序。最终值将是最高的,并且简单地输出数组将按温度顺序
标签: java arrays for-loop methods while-loop