2015-10-20 38 views
-1

我與下面的代碼有問題。我需要應用程序詢問用戶的學生人數,然後詢問每個等級。有了這個,我必須找到平均水平。這是我的代碼到目前爲止,我不知道如何解決它。帶掃描儀的平均分類

謝謝!

import java.util.Scanner; 

public class Assignment6 
{ 
    public static int students; 
    public static int grade; 
    public static int avg; 
    public static int obtainStudents(){ 
     Scanner input = new Scanner(System.in); 
     System.out.println("How many students"); 
     students = input.nextInt(); 
     return students; 
     } 

    public static double obtainGrade(int students){ 
     Scanner input = new Scanner(System.in); 

      System.out.println("Enter Grade"); 
      grade = input.nextInt(); 
      grade+=grade; 

     return grade; 
    } 
    public static double calculateClassAverage(){ 
     for(int i = 0; i<students; ++i){ 
      obtainGrade(students); 
      System.out.println(); 
     } 
     System.out.println(); 
     avg = grade/students; 
    return avg; 
    } 


public static void main (String [] Args){ 
    obtainStudents(); 
    calculateClassAverage(); 
    System.out.println(avg); 

} 

} 
+0

當前是什麼行爲? – artsylar

回答

0

你的問題在於你總計所有成績找到平均值。

public static double obtainGrade(int students){ 
    Scanner input = new Scanner(System.in); 

     System.out.println("Enter Grade"); 
     //sets grade to input wiping all previous inputs 
     grade = input.nextInt(); 
     //adds grade to itself again 
     grade+=grade; 

    return grade; 
} 

你應該做這樣的事情

public static int totalGrade 

public static double obtainGrade(int students){ 
    Scanner input = new Scanner(System.in); 

     System.out.println("Enter Grade"); 
     grade = input.nextInt(); 
     totalGrade+=grade; 

    return grade; 
} 

avg = totalGrade/students; 
+0

完美解決。謝謝! –

0

grade = input.nextInt()代替累計總數。
grade+=grade然後雙倍的價值。

結果: grade總是等於最後輸入級的值的兩倍。
avg = grade/students然後意味着avg = 2 * lastGrade/studentCount