Java帮助:如何在文件中找到扫描的最大数字?

时间:2014-07-11 02:08:31

标签: java input numbers integer

我需要找到扫描文件数量的总和,数量,平均数,赔率数,最大值,最小值和平均值。除了最大/最小,我做了一切。 程序运行时,最大/最小等于计数,而不是产生计数遇到的最大/最小值。

编辑:据我所知,最大/最小的数字与数量进行比较。我现在明白了这个错误。我不明白如何找到计数遇到的最小/最大值。

这就是我所做的: 注意: while循环之前的所有代码都是由我的教授预先编写的,并且代码不能以任何方式被篡改或更改。也不允许使用数组。

int count=0,sum=0, largest=Integer.MIN_VALUE,smallest=Integer.MAX_VALUE, evens=0, odds=0;
        double average=0.0;

        while (infile.hasNext())
        {
            count += 1;
            sum += infile.nextInt();
            average = sum/count;
            if (count > largest)
                largest = count;
            if (count < smallest)
                smallest = count;
            if (sum%2 != 0)
                odds++;
            else
                evens++;

        }
        infile.close();

1 个答案:

答案 0 :(得分:1)

您需要将读取的值与先前的最大值和最小值进行比较。因此,将值存储到变量中并将其用于比较/求和操作,如下所示:

int current = 0;

while (infile.hasNext())
    {
        current = infile.nextInt();
        count += 1;
        sum += current;            
        if (current > largest);
            largest = current;
        if (current < smallest)
            smallest = current ;
        if (current%2 != 0)
            odds++;
        else
            evens++;

    }

    average = sum/count;

所做更改的快速摘要:

  1. 使用变量获取下一个整数,而不是每次需要值时调用nextInt
  2. 使用所述变量进行比较和求和。
  3. 将计算结果移出循环,因为您只需要文件中所有n个数字的平均值。
  4. 我仍然不明白你的意思&#34;我不明白如何找到计数遇到的最小/最大值。&#34;什么 DOES 计算与它有什么关系?