无法找到最高的平均值

时间:2013-11-13 02:02:34

标签: java text average

我的代码下面有两个问题。我正在使用平均值。

首先,我正在努力寻找如何找出哪一周的平均值最高,然后输出平均值。

其次,txt文件有39周,但运行我的代码时只计算38个。

这是我目前的代码

import java.util.Scanner;
import java.io.File;
import java.io.IOException;

public class TemperaturesWeek2 {
    public static void main( String [] args ) throws IOException {
        int count=0;
        int counts=0;

        File inputFile = new File ("C:/Users/Phillip/Documents/Temp/temperatures.txt .txt");
        Scanner scan = new Scanner(inputFile);


        while(scan.hasNext()) {
            count++;
            scan.nextLine();

            String words = scan.next();

            double num1 = scan.nextDouble();
            double num2 = scan.nextDouble();
            double num3 = scan.nextDouble();
            double num4 = scan.nextDouble();
            double num5 = scan.nextDouble();
            double num6 = scan.nextDouble();
            double num7 = scan.nextDouble();

            double average = (num1 + num2 + num3+ num4+ num5+ num6+ num7) / 7;

            if(average >= 90) { 
                counts++; 
            }
        }
        System.out.println("Temperature Statistics:");  
        System.out.println("Number of weeks: " + count);
        System.out.println("Weeks with an average temperature of 90 or above: " + counts);
        System.out.println("Highest average weekly temperature:");
    }
} 

1 个答案:

答案 0 :(得分:2)

您似乎跳过了文件的第一行,因为您在阅读各种双打前请致电scan.nextLine();

找出哪个周平均值最高的简单解决方案是在代码中再添加两个变量,例如:

int highestWeek = 0;
double highestAverage = 0;

然后使用if语句在while循环中存储所需的值(有很多方法可以决定最大值,你可以使用Math类,或者如果你想操作数组,可以将所有内容存储在数组中数据更晚些时候)。对于exaple:

if (average>highestAverage)
{
      highestAverage=average;
      highestWeek=count;
}

注意:这将忽略多周平均值最高的情况。