我的代码下面有两个问题。我正在使用平均值。
首先,我正在努力寻找如何找出哪一周的平均值最高,然后输出平均值。
其次,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:");
}
}
答案 0 :(得分:2)
您似乎跳过了文件的第一行,因为您在阅读各种双打前请致电scan.nextLine();
。
找出哪个周平均值最高的简单解决方案是在代码中再添加两个变量,例如:
int highestWeek = 0;
double highestAverage = 0;
然后使用if语句在while循环中存储所需的值(有很多方法可以决定最大值,你可以使用Math类,或者如果你想操作数组,可以将所有内容存储在数组中数据更晚些时候)。对于exaple:
if (average>highestAverage)
{
highestAverage=average;
highestWeek=count;
}
注意:这将忽略多周平均值最高的情况。