2015-03-21 3 views
-2
import java.util.Scanner; //Needed for the scanner class 
    import java.io.File; //Needed for the file class 
    import java.io.IOException; //Needed for the IOException 

    public class AverageGrade { 

     public static void main(String[] args) throws IOException { 
      int i = 0; 
      double sum = 0.0; 
      double gradeTotal = 0.0; 

      // Open the file 

      File myFile = new File("C:\\Users\\life__000\\Desktop\\Eclipse - Java\\AverageGrade\\src\\myGrades.txt"); 
      Scanner myScanner = new Scanner(myFile); 

      //Read lines from the file until no more are left. 
      while (myScanner.hasNextDouble()) { 
       //Read the next name 
       gradeTotal = myScanner.nextDouble(); 

       i++; 

       //Display the last name read. 
       System.out.println(gradeTotal); 
      } 

      // Close the file. 
      myScanner.close(); 
     } 

Это мой код. Он считывает ввод файла, но не добавляет его. Я хочу добавить числа, а затем взять их среднее значение. Я уже пробовал gradeTotal += myScanner.nextDouble(); , но используя вышеприведенную строку печатает все числа вместо того, чтобы добавлять 3 числа.ввод и сумма чисел - java

3 номера в файле txt: 95.0 90.0 80.0 на одной строке. После ввода они отображаются на трех отдельных строках, чего я не хотел.

ответ

1

Используйте это:

gradeTotal =gradeTotal+ myScanner.nextDouble(); 
//this adds the value from the file to the value in the variable 

Вы делали:

gradeTotal = myScanner.nextDouble(); 
//this just overwrites the value already in the variable. 
+0

Уход за разъяснением дате голосования? – nom

+0

Я ничего не голосовал ??? – JavaCoder

+0

@ JavaCoder no Я не говорил о вас. Кто-то отклонил мой ответ, а затем поддержал его, когда я написал этот комментарий. – nom

0

Просто замените

gradeTotal = myScanner.nextDouble(); 

с

gradeTotal += myScanner.nextDouble(); 

Тогда среднее значение будет равно Total/i. Вычислите среднее значение за пределами цикла while. Только переменные достигли конечного значения.

+0

gradeTotal = gradeTotal + myScanner.nextDouble(); // это добавляет значение из файла в значение переменной. Это не может быть правильным ответом, поскольку он устарел. gradeTotal + = myScanner.nextDouble(); это правильный путь. – Theo

0

место вы выходите из петли. И измените это значение gradeTotal = myScanner.nextDouble(); до gradeTotal + = myScanner.nextDouble();

public class AverageGrade { 




     public static void main(String[] args) throws IOException 


    {  
      int i = 0; 
      double sum = 0.0; 
      double gradeTotal = 0.0; 

      // Open the file 

      File myFile = new File("C:\\Users\\life__000\\Desktop\\Eclipse - Java\\AverageGrade\\src\\myGrades.txt"); 
      Scanner myScanner = new Scanner(myFile); 

      //Read lines from the file until no more are left. 

      while (myScanner.hasNextDouble()) 

      { 
       //Read the next name 

       gradeTotal += myScanner.nextDouble(); 

       i++; 

       //Display the last name read. 




      } 

      // Close the file. 
    System.out.println(gradeTotal); 
      myScanner.close(); 
     } 

}