2015-10-24 6 views
-1

В игре с предсказанием два или более игрока пытаются предсказать счет ряда предстоящих спортивных соревнований. Затем прогнозы каждого игрока оцениваются на основе суммы категорий, перечисленных ниже. Эти описания используют следующие переменные:У меня есть java.lang.ArrayIndexOutOfBoundsException

S1: Фактическая оценка заработанных командой 1.

S2: Фактическая оценка заработанных командой 2.

P1: предсказанный счет игрока для команды 1.

P2: игрок предсказал оценку команды 2.

, но у меня есть исключение java.lang.ArrayIndexOutOfBoundsException

public void game() { 
    int s1, s2, p1, p2, winner, team1, team2, pointSpread, total = 0; 

    int testCase = scan.nextInt(); 

    for (int k = 0; k < testCase; k++) { 

     int p = scan.nextInt(); 
     int c = scan.nextInt(); 

     int[]result = new int[p]; 
     String[]pName = new String[p]; 

     for (int i = 0; i < p; i++) { 
      pName[i] = scan.next(); 

      for (int j = 0; j < c; j++) { 
       p1 = scan.nextInt(); 
       p2 = scan.nextInt(); 
       s1 = 20; 
       s2 = 13; 

       if (s1 > s2 && p1 > p2) { 
        winner = 10; 
       } 
       if (s1 < s2 && p1 < p2) { 
        winner = 10; 
       } else { 
        winner = 0; 
       } 

       team1 = 5 - Math.abs(s1 - p1); 
       team2 = 5 - Math.abs(s2 - p2); 
       pointSpread = 5 - Math.abs(p1 - p2)-(s1 - s2); 

       total += winner + team1 + team2 + pointSpread; 
       result[i] = total; 
      } 
     } 

     //compare players scores 
     int max = result[0], playerNo = 0; 
     for (int m = 1; m <= p; m++)//this line error 
      if (max < result[m]) { 
       max = result[m]; 
       playerNo = m; 
      } 

     System.out.println(pName[playerNo]); 
    } 
} 
+1

Возможный дубликат [Массив индекса за пределы поля Exception (Java)] (http://stackoverflow.com/questions/18549869/array-index-out-of-bounds-exception -java) –

ответ

2

Изменение линии ошибка for(int m=1; m<p;m++)

+0

@ Arc676 Прошу прокомментировать только после проверки фактов. Индекс 0 уже обрабатывается пользователем вне цикла. –

+0

Извините. Комментарий был за пределами стандартного размера кода, и он выглядел так, как будто код закончился там (до цикла). Виноват. – Arc676

+0

@ Arc676 Все в порядке. Мы люди, мы склонны ошибаться. –

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