基本上我正试图让双打与整数一起使用,也许我错过了一些明显的东西,但是,使用返回highValue 代码,我收到的错误是“可能丢失精度,必需:int,found:double“。就评论而言,这是我正在上课的。这是代码:
package pj701;
public class PJ70103 {
public static void main(String[] args)
{ //DO NOT CHANGE ANYTHING IN THE MAIN()
double[] x = { 11.11, 66.66, 88.88, 33.33, 55.55 };
double[] y = { 9, 6, 5, 8, 3, 4, 7, 4, 6, 3, 8, 5, 7, 2 };
double[] z = { 123, 400, 765, 102, 345, 678, 234, 789 };
int index = FindIndexHighest (x);
System.out.printf( "%s%5d%s%8.2f\n", "Array x: element index = " , index,
" element contents = ", x[index] );
index = FindIndexHighest (y);
System.out.printf( "%s%5d%s%8.2f\n", "Array y: element index = " , index,
" element contents = ", y[index] );
System.out.printf( "%s%5d%s%8.2f\n", "Array z: element index = ",
FindIndexHighest (z), " element contents = ",
z[FindIndexHighest (z) ] );
}
//======================================================
// put your method definition here - - ONE method
//======================================================
public static int FindIndexHighest(double[] x)
{
double highValue = 0;
for (int i = 1; i < x.length; i++)
{
if (x[i] > highValue)
{
highValue = x[i];
}
else
{
highValue = highValue + 0;
}
}
return highValue;
}
}
答案 0 :(得分:0)
您收到错误是因为您错误地实施了该方法。您将返回最高值(一个double)而不是最高索引(一个int)。您需要返回具有最高值的元素的索引。
您还应该知道数组的第一个索引是索引0,而不是索引1。
答案 1 :(得分:0)
我认为您需要再次检查作业的要求。它不是要求的值,而是传递的数组中该值的索引。
对于编译器警告,这意味着当您尝试隐式地将double转换为int时,您可能会丢失一些您拥有的信息。例如。 double d = 3.5; int i = d;
将导致i == 3
,因此小数点后的信息将丢失。这是编译器警告你的内容。要摆脱警告,请发出明确的演员,例如:上例中的int i = (int)d;
。