現在我正在製作一個打印出學生姓名,身份證號碼,考試成績,平均分數和成績的計劃。出於某種原因,計算平均分數的方法存在問題。我嘗試添加括號,但也沒有改變結果。這最終會影響評分,因爲評分是用平均分計算的。任何幫助表示讚賞,謝謝!這裏是我的代碼:計算班級中的平均數
import java.util.Scanner;
public class Student {
private String fname;
private String lname;
private int id;
private int score1;
private int score2;
private int score3;
private double average;
private String grade;
public void readInfo()
{
Scanner k = null;
k = new Scanner (System.in);
System.out.println ("Please enter the first name: (Enter John as first name and Doe as last name to stop) ");
fname = k.next();
System.out.println("Please enter the last name: ");
lname = k.next();
if (fname.equalsIgnoreCase("John")&&lname.equalsIgnoreCase("Doe"))
System.exit(0);
System.out.println("Please enter the student ID: ");
id = k.nextInt();
System.out.println("Please enter the first score: ");
score1 = k.nextInt();
System.out.println("Please enter the second score: ");
score2 = k.nextInt();
System.out.println("Please enter the third score: ");
score3 = k.nextInt();
}
//The problem lies in here:
private void computeAverage()
{
average = score1+score2+score3/3.0;
}
private void computeGrade()
{
if (average>=90&&average<=100)
grade = "A";
else if (average>=80&&average<=89.9)
grade = "B";
else if (average>=70&&average<=79.9)
grade = "C";
else if (average>=60&&average<=69.9)
grade = "D";
else
grade = "F";
}
private String getName()
{
return fname + " " + lname;
}
private double getAverage()
{
return average;
}
public void printAll()
{
System.out.printf("%-9s%-10s %-9s %-3s %-3s %-3s %-5s %-5s", "LastName","FirstName","ID","S1","S2","S3","AVG","GRADE");
System.out.println();
System.out.println("-----------------------------------------------------");
System.out.printf("%-9s%-9s %-9d %-3d %-3d %-3d %-3.2f%-2s",lname,fname,id,score1,score2,score3,average,grade);
System.out.println();
System.out.println("-----------------------------------------------------");
}
}
「我試過添加圓括號,並沒有改變結果」< - 在哪裏? – fge
左右(score1 + score2 + score3) – homidhomi4
'(double)(score1 + score2 + score3)/(3.0)' – 3kings