我花了最后一个小时尝试解决这个问题,但没有成功。我们必须使用通用编码指南(例如 scan.nextDouble)而不是实际数字来找到特定数量的 double 值的最大值。唯一的问题是我们只能在某个点添加代码。 (... 所在的位置)
double value, valMax;
int n;
n = scan.nextInt();
for(int j = 0; j < n; j++)
{
value = scan.nextDouble();
...
}
其中读入的第一个值是 int,它是要输入的 double 的数量。
这很困难,因为我必须找到一种方法在循环内初始化 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
执行什么操作(即在第一次迭代之后)?
这应该很快就会给你一个可行的解决方案。
关于java - 使用 for 循环实现 max 的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4120220/