gpt4 book ai didi

java - 数组索引中的值与另一个数组的索引不对应

转载 作者:行者123 更新时间:2023-12-01 11:18:44 25 4
gpt4 key购买 nike

我的代码有问题,看来是这部分造成的。

public static boolean[] determine(double avgMilesFlown, double[] numMilesFlown, boolean[] bonusEligibility) {  
boolean result = false;
for (double d : numMilesFlown) {
if (d > avgMilesFlown) {

result = true;
}

}
bonusEligibility = Arrays.copyOf(bonusEligibility, bonusEligibility.length + 1);
bonusEligibility[bonusEligibility.length - 1] = result;
return bonusEligibility;
}

该代码块应该确定某人是否获得奖金。如果他们的飞行里程数超过所有参赛者(包括他们自己)的平均飞行里程数,那么他们就有资格。我的问题是,我是否将每个人的飞行里程数与正确飞行的平均里程数进行比较,这样,如果飞行里程数大于平均值,那么它将返回与每个人相对应的 true 列表。

普通的for循环:

for (int i = 0; i < numMilesFlown.length; i++) {
if (numMilesFlown[i] > avgMilesFlown) {
result = true;
}
}

输入/输出示例:

Names: [tim, jim]
Years Flown: [2, 2]
Miles flown: [45, 43]
Avg Miles: 44
Bonus: [515.00, 515.00]

只有蒂姆应该获得奖金,因为他的飞行里程高于平均水平,但吉姆也可以获得奖金,即使他的飞行里程低于平均水平。

最佳答案

result 一次只能保存一个值,因此一旦在 for 循环中将其设置为 true,它将在整个方法中保持 true 并导致 bonusEligibility[] 中的所有内容 也设置为 true。

您可以直接使用 avgMilesFlown[] 的相应值填充 bonusEligibility[]。例如:

Arrays.fill(bonusEligibility, false);

for (int i = 0; i < numMilesFlown.length; i++) {
if (numMilesFlown[i] > avgMilesFlown) {
bonusEligibility[i] = true;
}
}

关于java - 数组索引中的值与另一个数组的索引不对应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31502546/

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