有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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;
}

共 (5) 个答案

  1. # 1 楼答案

    变量“i”是一个整数,它被用作计数器来迭代数组“grades”。使用计数器“i”索引到数组中以获取等级值,然后使用if语句检查等级是否小于60%。如果小于60%,则将其添加到总百分比中,并以百分比形式返回值

    扩展/编辑功能代码:

    public float getPercentFailing(float[] grades) {
        int count=0;
        float sum= 0;
        for (int i = 0; i < grades.length; i++) {
            float grade = grades[i];
            if( grade < 0.6 )
                sum = sum + grades[i];
            count++;
        }
        return sum/count;
    }
    
  2. # 2 楼答案

    你的逻辑是错误的。您需要检查所有等级,并根据0.6检查每个等级(不是循环索引)。你不想平均分数,你要计算有多少分数低于阈值。像这样的方法应该会奏效:

    public float getPercentFailing(float[] grades) {
    
        int failed = 0;
    
        for (int i = 0; i < grades.length; i++) {
            if (grades[i] < 0.6) {
                failed++;
            }
        }
        return ((float) failed) / grades.length;
    }
    

    如果需要它作为百分比而不是分数,请将最后一行更改为:

        return 100.0f * failed / grades.length;
    
  3. # 3 楼答案

    您希望循环遍历所有等级,并计算低于60%的等级数:

    int count = 0;
    for (int i=0; i!=grades.length; ++i) {
        if (grades[i] < 0.6) {
            count++;
        }
    }
    
    return ((float) count)/grades.length
    

    然后你通过将其除以总数来计算百分比

  4. # 4 楼答案

    对于i=0,循环只工作一次,因为i作为一个整数从0增加到1

  5. # 5 楼答案

    试试这样的。您需要首先将所有分数相加,这就是您在for循环中所做的。现在,由于我们只希望分数超过60,我们使用if语句来检查该值是否高于60。如果是,则将其添加到总和中,并将1计数到int count,以跟踪到目前为止我们添加了多少个等级

    for (int i = 0; i < grades.length; i++) {      //loop through all the grades
       if(grade[i] < 60) {                         //if the grade is over 60
           sum = sum + grades[i];                  //add the grade to the sum
           count++                                 //remember how many grades so we can get average
       }
    }
    

    然后将等级之和除以等级总数,或grades.lengthreturn

    return sum/count ;                             //calculate average
    

    现在一切都在一起:

    public float getPercentFailing(float[] grades) {
        int count=0;
        float sum= 0;
        for (int i = 0; i < grades.length; i++) {
              if(grade[i] < 60) {
                 sum = sum + grades[i];
                 count++
              }
        }
        return sum/count;
    
    }