java我的代码有什么问题。
我有这个代码用于返回低于60的分数百分比。但这并没有得到期望的百分比。有人帮我找出问题所在
public float getPercentFailing(float[] grades) {
float sum= 0;
for (int i = 0; i < .6; i++) {
sum = sum + grades[i];
return sum/100;
}
return 0;
}
你可以在下面搜索框中键入要查询的问题!
我有这个代码用于返回低于60的分数百分比。但这并没有得到期望的百分比。有人帮我找出问题所在
public float getPercentFailing(float[] grades) {
float sum= 0;
for (int i = 0; i < .6; i++) {
sum = sum + grades[i];
return sum/100;
}
return 0;
}
# 1 楼答案
变量“i”是一个整数,它被用作计数器来迭代数组“grades”。使用计数器“i”索引到数组中以获取等级值,然后使用if语句检查等级是否小于60%。如果小于60%,则将其添加到总百分比中,并以百分比形式返回值
扩展/编辑功能代码:
# 2 楼答案
你的逻辑是错误的。您需要检查所有等级,并根据0.6检查每个等级(不是循环索引)。你不想平均分数,你要计算有多少分数低于阈值。像这样的方法应该会奏效:
如果需要它作为百分比而不是分数,请将最后一行更改为:
# 3 楼答案
您希望循环遍历所有等级,并计算低于60%的等级数:
然后你通过将其除以总数来计算百分比
# 4 楼答案
对于
i=0
,循环只工作一次,因为i
作为一个整数从0
增加到1
# 5 楼答案
试试这样的。您需要首先将所有分数相加,这就是您在for循环中所做的。现在,由于我们只希望分数超过60,我们使用
if
语句来检查该值是否高于60。如果是,则将其添加到总和中,并将1计数到int count
,以跟踪到目前为止我们添加了多少个等级然后将等级之和除以等级总数,或
grades.length
和return
它现在一切都在一起: