我编写了一段代码来检查数组中的最大值,并在检查所有值之后返回最大值。运行代码时,我总是收到错误消息。有输入吗?
// Initialize maximum to the first value
double maximum = measurements[0];
// Now go through the rest of the array
for (double i = 0; i < measurements.length; i++) {
if (i > maximum) {
maximum = i;
}
}
// At each step, compare the value to our current maximum
// If it's greater, replace maximum
System.out.println(maximum);
java.lang.AssertionError:预期结果不正确[1019.1690418083019],但发现为[755.0]
答案 0 :(得分:1)
您正在将maximum的值设置为您的迭代器。你应该做
最大值=测量值[i]
说到迭代器,您为什么要为迭代器使用double?我建议您使用int。
编辑:我还发现您的if语句有问题。
如果(i>最大值){
这是将您的迭代器值与当前最大值进行比较。你应该做类似的事情
测量[i]>最大值
要检查数组中的实际值。
答案 1 :(得分:1)
请更改
if (i > maximum) {
maximum = i;
}
到
if (measurements[i] > maximum) {
maximum = measurements[i];
}
实际上,问题在于您正在将i
与maximum
而不是measurements[i]
进行比较