[我编写了一些代码,使扫描仪从计算机上的文本文件中读取,但是在运行代码时,扫描仪仅读取文本文件中的所有其他数字。有什么想法吗?
注意:对于grades.txt,这是文件
“ 3 8 1 13 18 15 7 17 1 14”
import java.util.*;
import java.io.*;
public class GradeAverage
{
public static void main(String[] args) throws IOException
{
Scanner scanner = new Scanner(new File("C:\\Users\\Media - Graphics\\Documents\\SCHOOL\\NCVPS\\GradeAverage\\grades.txt"));
int i = 0;
int sum = 0;
int lineNumber = 0;
int average = 0;
while(scanner.hasNextInt()){
System.out.println(scanner.nextInt());
sum = sum+scanner.nextInt();
lineNumber++;
}
System.out.println("The sum of the numbers: "+sum);
System.out.println("The number of scores: "+lineNumber);
average = sum/lineNumber;
System.out.println("The average of the numbers: "+average);
}
}
这是输出的内容:
3
1
18
7
1
数字的总和:67
分数:5
数字的平均值:13
每次在循环中调用nextInt()
时,都会消耗一个int
。因此,当您这样做时
System.out.println(scanner.nextInt());
sum = sum+scanner.nextInt();
您消耗了两个int
。您想要类似的东西>
int t = scanner.nextInt(); System.out.println(t); sum += t;
也您的
average
当前是int
(我希望是float
或double
)。
double average = sum/(double)lineNumber;
不要忘记删除
int average = 0;
(或相应地修改它和average
)。