2016-02-22 90 views
0

我正在嘗試查找每班學生的平均數量,但是當我測試我的程序時,它每次只打印1或0。任何幫助,將不勝感激。查找學生的平均值

import java.util.Scanner; 
public class Test { 

public static void main(String[] args) { 
Scanner reader = new Scanner(System.in); 
System.out.println("Please enter the number of Students: "); 
int s = reader.nextInt(); 
System.out.println("Please enter the number of classes: "); 
int c = reader.nextInt(); 
int numbStud1 = 0; 
int numbClass1 = 0; 
double averages =calcAverage (numbStud1 + c,numbClass1 + s) ; 
System.out.println("The average is: " + averages); 
} 
public static double calcAverage(int numbStud, int numbClass){ 
    double average1; 
    average1 = numbStud/numbClass; 
    return average1; 
} 

}

+0

'numbStud/numbClass' - int除以int仍然是int。當它被分配到「average1」時,該值被轉換爲double,但實際的計算已經發生。 –

+0

更改'average1 = numbStud/numbClass;'到'average1 =(numbStud * 1.0)/ numbClass;' – Atri

+0

我認爲我的average1 = numbStud/numbClass不是正確的計算所需。因爲現在當我輸入30名學生時,輸入15個班,我的答案是每班2個學生,這是不正確的。 – Sergio

回答

0

的問題是這樣的:

double averages =calcAverage (numbStud1 + s,numbClass1 + c) ; 

如果你想avrage更精確的使用:

double averages =calcAverage (numbStud1 + c,numbClass1 + s) ; 

與交換cs替換它

average1 = (numbStud*1.0/numbClass*1.0); 
+0

是的!這絕對給了我不同的輸出,但我的答案似乎並不正確。當我輸入30名學生,然後輸入15個班,我的答案是每班2名學生是錯誤的。我的計算中是否有缺失? – Sergio

+0

30個學生,15個班給2是@Sergio – Abdelhak

+0

哦,我的天啊!你很對。我有一個大腦放屁的時刻。非常感謝你,幫助我清除了很多事情 – Sergio