我正在研究一个从文件读取成绩的项目,但该文件包含学生姓名和他们所在的课程,有些有3个等级,有些有4个。我正在努力获得分数当我尝试运行程序时出现0错误,并且在google搜索之后无法弄清楚,初学者用java。打开文件我很好,但我正在努力解决如何让它读取第一行的平均值然后继续其他所有文件以及返回println中的值。
文件内容(有三个等级):
//Happy CS145 81 85 91
//Sneezy CS145 67 75 75
//Doc CS145 92 97 89
//Dopey CS111
//Grumpy CS145 75 65 66
//Bashful CS145 81 82 81
//Sleepy CS145 71 74 71
import java.io.FileReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class MainClass {
public static void main(String args[]){
int numTestScores = 0;
int sum = 0;
int average = 0;
Scanner input = null;
try {
input = new Scanner(new File("PA2data2.txt"));
} catch (FileNotFoundException ex) {
System.out.println("Cannot open file - " + ex);
}
while (input.hasNext()) {
while (input.hasNextInt()){
sum += input.nextInt();
numTestScores++;
}
average = sum / numTestScores;
System.out.println(average);
}
System.out.println("Average is " + sum / numTestScores);
input.close();
}
}
答案 0 :(得分:0)
您应该使用nextLine()而不是nextInt()
]
另外,你也想要使用双打而不是int来平均,否则平均为0。
答案 1 :(得分:0)
只需将您的部门操作保留在if
声明中:
if(numTestScores > 0) {
average = sum / numTestScores;
System.out.println(average);
}