我如何平均?我想要找到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);
}
}
答案 0 :(得分: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并打印无意义的结果。
答案 1 :(得分:0)
您正在循环中获取此行的输入
GPA = keyboard.nextDouble();
问题是,它将获得另一个输入,计数将增加1。 所以你的总数将是5。 你可以用这种方式做到这一点
while (GPA >=0)
{
GPA = keyboard.nextDouble();
if (GPA >=0)
{
total = total + GPA;
count++;
}
else
break;
}
答案 2 :(得分:0)
只需在while循环中交换语句的顺序,您的代码就可以正常工作。 在这种情况下,您在键入后将进行检查(是否将i / p添加到总数中)。 因此,当您键入-1时,您将不会进入while循环,并且不会添加最后一个-1的值。
while(GPA> = 0) {
total = total + GPA;
GPA = keyboard.nextDouble();
count++;
}