如何从给定值获得平均值

我如何平均? 我想要找到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); } } 

如果问题是你得到了错误的答案,原因是这个循环:

 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并打印无意义的结果。

您将在此行的循环中获得输入

 GPA = keyboard.nextDouble(); 

问题是,它会得到另一个输入,计数将增加1.所以你的总数将是5.你可以这样做

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

只需在while循环中交换语句的顺序,您的代码就可以正常工作。 在这种情况下,您的检查(是否将i / p添加到总数)将在您键入后完成。因此,当您键入-1时,您将不会输入while循环和最后一个值 – 1将不会被添加。

while(GPA> = 0){

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

}