由于数组而被困在我的代码上

时间:2017-05-07 14:12:25

标签: java arrays

我在这段代码中有两个不同的问题需要帮助,第一个是convertToFah。我需要在构造函数中使用数组并使用公式将每个double转换为Fahrenheit(摄氏(双倍值)* 9.0 / 5.0 + 32)并返回它(我总是得到一个像can&t; t转换的错误当我尝试时,从double到double []。第二个是我必须将maxMonth / minMonth设置为与最大/最小值相同的索引中的任何月份。 (因此,如果最大值为10并且它在数组[3]那么月份将是4月)。任何帮助都会很精彩。 (顺便说一下,我还没到达到今天的绳索,所以现在不是一个真正的问题。)

process.exit()

}

3 个答案:

答案 0 :(得分:1)

public double convertToFah(double array[])的返回类型更改为double[],因为您将返回转换为华氏温度的双倍数组温度。

public double[] convertToFah(double array[]) // returns double array

现在,如果您想获得最高/最低温度的月份,请修改findMin& findMax方法返回{/ 1}}最高/最低温度,然后您可以使用index找到index

month

public int findMin(double array[], double min, String minMonth){ int min_index = 0; for (int index = 0; index < array.length; index++) { if (array[index] < min){ min = array[index]; min_index = index; } } return min_index; } ...

相同
findMax

然后你可以像public int findMax(double array[], double max, String maxMonth){ int max_index = 0; for (int index = 0; index < array.length; index++) { if (array[index] < max){ max = array[index]; max_index = index; } } return max_index; } 那样获得最低月份。

答案 1 :(得分:0)

不确定你的第二个问题是什么,但我认为你的第一个问题是转换温度并将其存储回阵列。请尝试以下代码:

for(int index = 0; index < array.length; index++){
    array[index] = array[index] * 9.0/5.0 + 32;
}

答案 2 :(得分:0)

你只能通过写&#34; double&#34;来返回函数中的三个值(avg,min,max),你应该做&#34; double []&#34;,所以你可以回报你得到的同样的东西。 所以这个函数将是:

public double[] convertToFah(double array[]){

    double[] fahValue;

    for(int index = 0; index < array.length; index++){
         fahValue[index] = (array[index] * 1.8) + 32; // this is what i found on the internet, as i didn't really get what you wrote
    }

    return fahValue;
}

那么你的月问题。如果我是对的,您希望获得这几个月的最低和最高温度值。如果是这样,那么你的功能很好,只有很少的错误。

以下是更正的功能:

public double findMin(double array[]){

    double min = 999; // I set here the value to a high number to get a smaller one after

    for (int index = 0; index < array.length; index++) {

        // if the value is smaller than the previous smallest
        if (array[index] < min){
            min = array[index];
        }
    }

    return min;
}


public double findMax(double array[]){

    double max = 0;

    for (int index = 0; index < array.length; index++) {
        if (array[index] > max){
            max = array[index];
            // return max; <- delete this line, let the return after the for function
        }
    }

    return max;
}

如果您有更多问题,无论是我写的是其他什么,都不要犹豫,问:)