Попытка заполнить массив из текстового файла, но должна быть включительно (0-100) - PullRequest
0 голосов
/ 06 декабря 2018

Я создал программу, которая берет входные данные (оценки) из файла и выводит все оценки вместе со средней, самой высокой и самой низкой оценками.Однако я изо всех сил пытаюсь исключить оценки, которые не находятся в пределах 0-100 границ (исключая значение печати на монитор, а не фактический выходной файл), что также портит результаты, которые я получаю.Кажется, что условие if / else ничего не делает вообще.Вот мои переменные, а также цикл, который я должен заполнить мой массив.Любая помощь приветствуется, спасибо!

   int sum = 0; // sum of the grades
   double avg; // avg of the grades (change to mean later)
   final int SIZE = 23; // size of the array
   int[] scores = new int[SIZE]; // array to store the scores
   int i = 0; // array subscript
   int high = 0; // variable to hold the high grade
   int low = 0; // variable to hold the low grade


  // Read the input and write the output

  out.printf("The scores are: ");

  while (in.hasNextInt())
  {
     // statements to input the scores, output the scores, accumulate the 
     sum, and modify the subscript
     if (i >= 0 && i <= 100)
     {
       scores[i] = in.nextInt();
       sum = sum + scores[i];
       out.print(scores[i]);
       i++;
     }
     else
     {
       System.out.println("The ignored scores are: " + scores[i]);
     }  

  }

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Код должен проверять счет, а не индекс массива i

while (in.hasNextInt())
{
 // statements to input the scores, output the scores, accumulate the 
 sum, and modify the subscript
 int score = in.nextInt()
 if (score >= 0 && score <= 100)
 {
   scores[i] = score;
   sum = sum + scores[i];
   out.print(scores[i]);
   i++;
 }
 else
 {
   System.out.println("The ignored scores are: " + score);
 }  
}
0 голосов
/ 06 декабря 2018

Вы, похоже, путаете свой индекс с введенным значением

измените свой код на что-то вроде

while (in.hasNextInt())
{
 // statements to input the scores, output the scores, accumulate the 
 int input = in.nextInt();
 if (input >= 0 && input <= 100)
 {
   scores[i] = input;
   sum = sum + scores[i];
   out.print(scores[i]);
   i++;
 }
 else
 {
   System.out.println("The ignored score is: " + input);
 }  

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...