gpt4 book ai didi

java - 在 float 数组中查找最小值

转载 作者:行者123 更新时间:2023-11-29 07:28:34 24 4
gpt4 key购买 nike

在学校里,我们被要求创建一个函数来找到 float 组中的最小值。在前 2 个数组中它起作用。但是因为第三个数组只包含负值,所以它们都低于初始化时给定的值。所以它仍然是 0.0。

有人能帮忙吗?

float[] numbers = {3.3, 4.5, 7.2, 5.3, 9.0, 2.3}; // min 2.3, max 9.0
float[] numbers2 = {-8.0, 4.5, 1.2, -5.6, -9.1, 4}; // min -9.1, max 4.5
float[] numbers3 = {-0.4, -0.7, -3.5, -1.9, -8.0}; // min -8.0, max -0.4

void setup() {
float highest = returnHighest(numbers);
float highest2 = returnHighest(numbers2);
float highest3 = returnHighest(numbers3);
println("The highest grade is: " + highest);
println("The highest grade is: " + highest2);
println("The highest grade is: " + highest3);
}

float returnHighest(float[] numbers) {
float highest = 0;

for(int i = 0; i < numbers.length; i++) {
if(numbers[i] > highest) {
highest = numbers[i];
}
}

return highest;
}

最佳答案

But because the 3rd array only contains negative values they're all lower than the value given at initialization.

答案是……有点……简单。您可以使用数组中的数字之一 (1) 初始化变量 lowest,也可以使用 lowest possible float value 对其进行初始化。 (2).

(1) 用数组中的数字初始化变量:

float highest = numbers[0];

使用此解决方案,您首先必须确保没有空数组。否则你会得到一个 ArrayIndexOutOfBoundsException .

(2) 使用尽可能低的浮点值初始化您的变量:

float highest = Float.NEGATIVE_INFINITY;

每个浮点值都大于 Float.NEGATIVE_INFINITY(好吧……除了负无穷大值本身)。在循环之后,您可以检查 highest 是否仍然等于 Float.NEGATIVE_INFINITY。在那种情况下,数组为空或仅包含负无穷大。

我会推荐方法 (2)。这是查找集合/数组的最低/最高值的常见模式,也可以很好地处理空集合/数组。

关于java - 在 float 数组中查找最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46559123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com