我花了最后一个小时对这个问题进行反复试验,但无济于事。我们必须使用通用编码准则(例如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有什么作用(即在第一次迭代之后)?


那应该很快给您一个可行的解决方案。

10-07 20:34