2015-10-20 63 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