-4

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

5 に答える 5

1

このようなことを試してください。最初にすべてのグレードアップを追加する必要があります。これは、for ループで行っていることです。60 を超える成績のみが必要なので、ifステートメントを使用して、値が 60 を超えているかどうかを確認します。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.lengthますreturn

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;

}
于 2012-10-11T00:37:56.347 に答える
1

あなたの論理は間違っています。すべての等級を調べて、各等級 (ループ インデックスではない) を 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;
于 2012-10-11T00:40:43.253 に答える
0

は からまでの整数としてインクリメントされるためi=0、ループは for で 1 回だけ機能します。i01

于 2012-10-11T00:36:57.913 に答える
0

すべての成績をループして、60% 未満の成績を数えたいとします。

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

return ((float) count)/grades.length

次に、合計で割ってパーセンテージを計算します

于 2012-10-11T00:39:21.133 に答える
-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;
}
于 2012-10-11T00:45:10.227 に答える