Вот код, который я использую:
Код: Выделить всё
import java.util.Scanner;
public class StudentGrades {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int count = 0;
double sum = 0.0;
while (true) {
System.out.print("Enter student score (-1 to exit): ");
double score = scanner.nextDouble();
if (score == -1) {
break;
}
if (score < 0 || score > 100) {
System.out.println("Invalid score. Please enter a score between 0 and 100.");
continue;
}
count++;
sum += score;
char grade;
if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else if (score >= 60) {
grade = 'D';
} else {
grade = 'F';
}
System.out.println("Grade: " + grade);
}
if (count > 0) {
double average = sum / count;
System.out.println("Total scores processed: " + count);
System.out.printf("Average score: %.2f%n", average);
} else {
System.out.println("No scores were entered.");
}
scanner.close();
}
}
Я проверил логику расчета в коде и гарантировал, что я вводил действительные результаты. Я ожидал, что средний балл будет отражать правильный расчет, но это не так.
Подробнее здесь: https://stackoverflow.com/questions/791 ... va-program