Я кодирую тестовый усреднитель в Java. Я должен использовать циклы do while, while, if.
У меня пользователь вводит результаты тестов, запрашивая отрицательное число, чтобы оставить while l oop.
Мне нужно отобразить количество введенных баллов, максимальное, минимальное и среднее.
Однако у меня возникают проблемы с отображением самого низкого числа, поскольку оно появляется как 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"));
}
}