2016-08-14 2 views
-6

Эй я пишу класс Java и результат должен быть из этого изображенияпрограммирования Java с этим классом

enter image description here.

Вся программа отлично работает, но в конце концов я не получаю правильный математический вывод. Я думаю, что это проблема в моем уравнении. Может кто-то помочь мне с проблемой. Спасибо

import java.util.Scanner; 
import java.awt.Toolkit; 

public class Sports 
{ 
    public static void main(String[] args) 
    { 
     //create scanner object 
      Scanner input=new Scanner(System.in); 

      //create tolkit object 
      Toolkit tk=Toolkit.getDefaultToolkit(); 
      int players; 
      int team=15; 

      System.out.println("SporT's Team Calculator"); 
      System.out.println("======================="); 

      System.out.println("Enter the Total number of players===>"); 
      players=input.nextInt(); 


      System.out.println("Enter the Number of players per team" + 
      "\n(at least 9 & no more than 15 per team)===>"); 
      players=input.nextInt(); 



     while(players>15 || players<9 ) 
     { 
      tk.beep(); 
      System.out.println("\nInvalid number of players per team, please re-enter..."); 

      System.out.println("Enter the Number of players per team" + 
        "\n(at least 9 & no more than 15 per team)===>"); 
      players=input.nextInt(); 

      players=players%team; 


      } 
     System.out.println("There will be " + players + " teams, " 
       + "with " + players + " players " + "left over."); 

     System.out.println("\nThank you for using SporT's Software!"); 


    } 

} 
+1

Какой выход вы получите? Что вы видели, когда вы ** отлаживали ** код? – Andreas

+0

Введите текст вместо использования изображения. Фактически, вы могли бы упростить этот вопрос гораздо больше. Положите больше усилий на свои вопросы; вы получите лучшие ответы, и вы часто решаете их сами. – David

ответ

2

Вы экономите как общее количество игроков и количество игроков на команды в одной и той же переменной players. Если бы вы ответили, что общее количество игроков - 142, то оно будет немедленно перезаписано следующим назначением игрокам за количество в команде. Это должны быть отдельные переменные int playersPerTeam например

0

Кажется, что вы извлекаете две части информации: общее количество игроков и игроков в команде. Поэтому вам понадобятся две переменные для хранения обеих частей информации. Вместо того, чтобы переопределять одну и ту же переменную - потерять первую часть собранной информации.

Уравнения:

Чтобы получить количество команд:

(int)(players/playerPerTeam) 

Чтобы получить количество оставшихся игроков:

players-playerPerTeam*totalTeams 

Кроме того, я не понимаю, почему вы получая два разных номера, 11 и 10, для той же переменной, players в консоли.

0

Во-первых, вы работаете с java, поэтому переменная игроков будет постоянно получать переопределение.

Чтобы решить эту проблему, разделите переменная

players 

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

Во-вторых, ваша математика при подсчете общего количества команд и оставшихся игроков неверна. Ниже я включал в себя рабочую версию:

int numTeams = totalPlayers/playersPerTeam; 
    int playersLeft = totalPlayers - (playersPerTeam * numTeams); 
    System.out.println("There will be " + numTeams + " teams, " + "with " + playersLeft + " players " + "left over."); 
-1
i actually already figured it out but thanks. 

import java.util.Scanner; 
import java.awt.Toolkit; 

public class Sports 
{ 
    public static void main(String[] args) 
    { 
     //create scanner object 
      Scanner input=new Scanner(System.in); 

      //create tolkit object 
      Toolkit tk=Toolkit.getDefaultToolkit(); 
      int players; 
      int team; 

      System.out.println("SporT's Team Calculator"); 
      System.out.println("======================="); 

      System.out.println("Enter the Total number of players===>"); 
      players=input.nextInt(); 


      System.out.println("Enter the Number of players per team" + 
      "\n(at least 9 & no more than 15 per team)===>"); 
      team=input.nextInt(); 




     while(team>15 || team<9 ) 
     { 
      tk.beep(); 
      System.out.println("\nInvalid number of players per team, please re-enter..."); 

      System.out.println("Enter the Number of players per team" + 
        "\n(at least 9 & no more than 15 per team)===>"); 
      team=input.nextInt(); 




      } 

     int result=players/team; 
     int player= players%team; 

     System.out.println("There will be " + result + " teams, " 
       + "with " + player + " players" + " left over."); 

     System.out.println("\nThank you for using SporT's Software!"); 


    } 

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