2015-11-06 2 views
-3

Так вот мой код:Java-Количество баллов должно быть один меньше в ответ

package e7; 
import java.util.Scanner; 
public class Q1 { 

    public static void main(String[] args) 
    { 
     double[] scores = new double[10]; 
     double sum = 0.0D; 
     int count = 0; 

     Scanner sc = new Scanner(System.in); 

     do { 
      System.out.print("Enter a new score (-1 to end): "); 
      scores[count] = sc.nextDouble(); 

      if (scores[count] >= 0.0D) 
       sum += scores[count]; 

     } 

     while (scores[(count++)] >= 0.0D); 

     System.out.println("The total number of scores is: " + count); 

     double average = sum/(count - 1); 
     int numOfAbove = 0; 
     int numOfBelow = 0; 

     for (int i = 0; i < count - 1; i++) { 
      if (scores[i] >= average) 
       numOfAbove++; 
      else 
       numOfBelow++; 
     } 

     System.out.printf("Average is " + "%.2f\n",average); 
     System.out.println("Number of scores above or equal to the average " + numOfAbove); 
     System.out.println("Number of scores below the average " + numOfBelow); 

    } 

    } 

Как сделать это правильно отображать количество баллов рассчитывается? Если я ввожу 2 числа, а затем сделаю -1, чтобы закончить, он продолжает говорить 3 балла. Должно быть только два. Как это исправить? Благодаря

+0

Я сделал это System.out.println («Общее количество баллов:» + (счет-1)); но это похоже на гетто, поэтому я думаю, что, возможно, это еще один способ – LeroyJenkins

ответ

2
System.out.println("The total number of scores is: " + count); 

Вы, вероятно, хотите:

System.out.println("The total number of scores is: " + (count - 1)); 
0

Вы также можете изменить свой цикл от дел, а на время цикла следующим образом,

while (true) { 
    System.out.print("Enter a new score (-1 to end): "); 
    double tempDouble = sc.nextDouble(); 

    if (tempDouble >= 0.0D) 
    scores[count] = tempDouble; 
    sum += scores[count]; 
    count++; 
    else 
    break; 
} 

Таким образом, как если ваш двойной вход неверно, он вырвался бы из цикла while, когда пользователь ввел -1. Возможно, вам придется немного подстроить его для вашего случая использования.

Смежные вопросы