我花了最后一个小时对这个问题进行反复试验,但无济于事。我们必须使用通用编码准则(例如scan.nextDouble)而非实际数字,来找到一定数量的double值的最大值。唯一的问题是我们只能在特定点添加代码。 (...在哪里)
double value, valMax;
int n;
n = scan.nextInt();
for(int j = 0; j < n; j++)
{
value = scan.nextDouble();
...
}
读入的第一个值是int,即要输入的双精度数。
这很困难,因为我必须找到一种在循环内初始化valMax而不弄乱其他任何东西的方法。
这就是我一直在工作的东西,但是对我没有任何帮助。
for(int j = 0; j < n; j++)
{
value = scan.nextDouble();
if(j == 0)
{
valMax = scan.nextDouble();
j++;
}
else
{
continue;
}
if(value >= valMax)
{
valMax = value;
}
}
输入示例:
5 -4.7 -9.2 -3.1 -8.6 -5.0
其中-3.1是最大值,5是以下数字的计数。
最佳答案
您的代码似乎是一个好的开始。
为了帮助您解决问题,请考虑:
为什么要放入多余的j++
?您真的需要吗? (提示:否;-))
循环对j>0
有什么作用(即在第一次迭代之后)?
那应该很快给您一个可行的解决方案。