0

どうすれば平均化できますか?. GPAの平均、学生の合計、および の合計を求めるとしますGPA。例:

入力: 4 4 4 4

出力: 総生徒数:4

総GPA:16

平均GPA: 4

import java.util.Scanner;

public class practice {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int count = 0;
        double GPA = 0, total = 0, average;

        System.out.println("Enter GPA");

        while (GPA >= 0) {
            GPA = keyboard.nextDouble();
            total = total + GPA;
            count++;
        }

        average = total / count;

        System.out.println("Total students: " + count);
        System.out.println("Total GPA " + total);
        System.out.println("Average GPA " + average);
    }
}
4

3 に答える 3

7

問題が間違った答えを得ていることである場合、その理由は次のループです。

while (GPA >=0)
{
    GPA = keyboard.nextDouble();
    total = total + GPA;
    count++;
}

おそらく、ユーザーが負の数を入力したときにループを終了するつもりです。それが間違っているのは、合計とカウントに負の数が含まれることです。次のようにループを書き換えることができます。

GPA = keyboard.nextDouble();
while (GPA >=0)
{
    total = total + GPA;
    count++;
    GPA = keyboard.nextDouble();
}

(他の解決策も可能です)。コードの後半で、最初の数値が負になることを防ぐ必要があります。その場合、countは 0 になり、0 で除算して無意味な結果を出力することは避けたいと考えています。

于 2013-03-20T06:35:21.227 に答える
0

while ループ内のステートメントの順序を入れ替えるだけで、コードは正常に動作するはずです。この場合、チェック (i/p を合計に追加するかどうか) はキー入力後に行われます。したがって、-1 を入力すると、while ループと最後の値 - は入力されません。 1 追加されません。

ながら (GPA >=0) {

total = total + GPA;
GPA = keyboard.nextDouble();
count++;

}

于 2013-03-20T07:02:42.883 に答える