Java 方法未打印正确的值不是由于int除法
我正在为我的计算机科学课做这个项目,它告诉你期末考试你需要获得什么分数才能在课堂上获得A。我正在研究一种方法,找到你需要得到的分数,但它一直打印出15分 有人知道我做错了什么吗? 该问题不是由于int分割引起的Java 方法未打印正确的值不是由于int除法,java,Java,我正在为我的计算机科学课做这个项目,它告诉你期末考试你需要获得什么分数才能在课堂上获得A。我正在研究一种方法,找到你需要得到的分数,但它一直打印出15分 有人知道我做错了什么吗? 该问题不是由于int分割引起的 public int gradeNeeded() { int sumSum = 0; double newOverall = 0; int i = 0; for (int j = 0; j < sumGrades.length; j++) {
public int gradeNeeded() {
int sumSum = 0;
double newOverall = 0;
int i = 0;
for (int j = 0; j < sumGrades.length; j++) {
sumSum += sumGrades[j];
}
while (newOverall < 90) {
sumSum += i;
double sumAverage = ((double) sumSum / (sumGrades.length + 1));
newOverall = (this.getFormAverage() * .25) + (sumAverage * .75);
i++;
}
return i;
}
public int gradeNeeded(){
int sumSum=0;
双新总体=0;
int i=0;
对于(int j=0;j
问题在于循环中的sumSum不断增加。你还应该在循环开始时增加i,这样你就不会偏离1
int i = -1;
while (newOverall < 90) {
i++;
int nSum = sumSum+i;
double sumAverage = ((double) nSum / (sumGrades.length + 1));
newOverall = (this.getFormAverage() * .25) + (sumAverage * .75);
}
inti=-1;
而(新总体<90){
i++;
int nSum=总和+i;
双sumAverage=((双)nSum/(sumGrades.length+1));
newOverall=(this.getFormAverage()*.25)+(sumAverage*.75);
}
您希望它打印出什么?给我们一些输入示例。问题在于sumAverage=sumSum/(sumGrades.length+1)
,它使用整数除法。有关这方面的更多信息,请参阅我链接到的问题。(太长了,读不下去了)(Trime= SuMAWISTAL =((双)SUMSONS/(SUMGADESULL + 1)< /代码>)我到现在为止测试的是80,FUMAIMANCE和SUMPLACE数组中的2个90s,并且这些输入应该返回100ySaveIT,没有修复它。它仍然返回15。OOP抱歉,我的父母错了。应该是< >((双)SUMSUM)/…