gpt4 book ai didi

java - 尝试在Java中找到扫描仪用户输入的最小数量

转载 作者:行者123 更新时间:2023-12-02 02:45:51 25 4
gpt4 key购买 nike

我正在用 Java 编写一个测试平均器。我必须使用 do while、while、if 循环。

我让用户输入测试分数,要求输入负数以离开 while 循环。

我必须显示输入的分数数量、最高分数、最低分数和平均值。

但是,我在显示最小数字时遇到问题,因为它弹出为 0。

对于输入 95、93、92、91 和 -1:

输入的分数数量:4最高:95最低:0平均值为:92

我的代码:

import java.util.*;

public class Lab7
{

public static void main(String[] args)
{
System.out.println("This program computes the average of");
System.out.println("a list of (nonnegative) exam scores.");
int sum;
int numberOfTests;
int testInput;
String answer;
int minimum = 0;
int maximum = 0;
Scanner keyboard = new Scanner (System.in);

do
{
System.out.println();
System.out.println("Enter all the scores to be averaged.");
System.out.println("Enter a negative number after");
System.out.println("you have entered all the scores.");
sum = 0;
numberOfTests = 0;
testInput = keyboard.nextInt();

while (testInput >= 0)
{
sum = sum + testInput;
numberOfTests++;


if (testInput < minimum)
{
minimum = testInput;
}

if (testInput > maximum)
{
maximum = testInput;
}

testInput = keyboard.nextInt();
}

if (numberOfTests > 0)
{
System.out.println("The number of scores entered: " + numberOfTests);
System.out.println("The Highest: " + maximum);
System.out.println("The Lowest: " + minimum);
System.out.println("The average is: " +
(sum / numberOfTests));

}

else
{
System.out.println("No scores to average.");
}

System.out.println("Want to average another exam?");
System.out.println("Enter yes or no.");
answer = keyboard.next();
}

while (answer.equalsIgnoreCase("yes"));
}


}

最佳答案

您初始化minimum0 ,因此对于正输入,它将始终是最小值。这意味着if (testInput < minimum)永远是false 。要解决此问题,请使用 Integer.MAX_VALUE 对其进行初始化。相反。

一般来说,最好以可能的最低值开始设置最大值,例如 Integer.MIN_VALUEDouble.MIN_VALUE或者在您的情况下使用 0 ,因为没有负分。此外,最小值应该用最大可能值初始化,如上所述。

这样,您的支票将始终按预期工作。

关于java - 尝试在Java中找到扫描仪用户输入的最小数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62820544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com