【问题标题】:how would I use a 2d array to print the quarter and total我将如何使用二维数组来打印季度和总计
【发布时间】:2022-01-16 03:18:29
【问题描述】:

编写一个程序,在 4 节比赛中显示八名球员的得分。该程序应 显示玩家的名字和姓氏,姓氏的首字母和首字母大写。 分数由用户输入,但条目只能包含两位数。该程序 应该合计每个玩家的游戏得分。输出应显示整个 多维数组

导入 java.util.Scanner; 导入 java.util.Arrays;

公共类 finalScore {

public static void main(String[] args) {
    
    
    Scanner scan = new Scanner (System.in);
    
    System.out.print("Enter the number of game players: ");
    // using array
    int numOfPlayers = scan.nextInt();
    String[] names = new String[numOfPlayers];
    double[] scores = new double[numOfPlayers];





    
  // using for loop to all the names of the player 

    String list="";
    for (int i=0; i<names.length; i++){
         list += " Quarter " + (i+1) + ": " + scores[i] + " points |||";

    }

    //return;

        // asking user to enter players name
     System.out.print("Enter a players name for quarter 1, " );
      String name;
      name= scan.next();
      // UpperCasing the first letter of the first name
      String result = name.substring(0, 1).toUpperCase()+name.substring(1);       
      String lastName=scan.next();
      // UpperCasing last name 
      String result2=lastName.substring(0, 1).toUpperCase()+lastName.substring(1);
      System.out.println(result + " " +result2);
      
      
      
      
      

   // print name for scores
      names[i] = name;
      // enter name score
      System.out.print("Enter " + result + " "+ result2 +"\'s score: ");
      System.out.println("\n");
      //System.out.println( "Name: \t" + "Q1. ");

     
      
      while(scan.hasNext()) {
        if(scan.hasNextDouble()) {
          double score = scan.nextDouble();
          scores[numOfPlayers] = score;
          break;
        } else {
              System.out.println( "Name: \t" + "Q1. ");

          System.out.println("ERROR: Invalid Input");
          scan.next();
        }
      }
    }
          
          
          
          

             
            //System.out.println("      \tQ1. " );

              
              //System.out.println(  Arrays.toString(names  ) + "\t" +Arrays.toString(scores));
              //
              
    }

这是输出的样子,我不知道我是新人,请帮帮我 Q1。 Q2。第三季度第四季度。全部的 鲍勃·史密斯。 1 2 3 4 10 异形之心 1 2 3 4 10

【问题讨论】:

  • 你能澄清你必须做什么吗?每个玩家都有4个分数吗?所以你必须读取 8 名球员,每人 4 分,并将他们保存在一个数组中并打印出来?

标签: java arrays multidimensional-array double names


【解决方案1】:

试试这个怎么样?您可以自己添加一些验证。

public class finalScore {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        System.out.print("Enter the number of game players: ");
        int numOfPlayers = scan.nextInt();
        
        String[] names = new String[numOfPlayers];
        double[][] scores = new double[numOfPlayers][4];

        for (int i = 1; i < names.length + 1; i++) {
            System.out.println("Enter a players name for quarter " + i + ": ");
            String name = scan.next();
            String result = name.substring(0, 1).toUpperCase() + name.substring(1);
            String lastName = scan.next();
            String result2 = lastName.substring(0, 1).toUpperCase() + lastName.substring(1);
            System.out.println(result + " " + result2);
            name = result + " " + result2;
            names[i - 1] = name;
            
            // enter scores
            System.out.println("Enter " + names[i - 1] + "\'s score: ");
            System.out.print("Q1: ");
            scores[i-1][0] = scan.nextInt();
            System.out.print("Q2: ");
            scores[i-1][1] = scan.nextInt();
            System.out.print("Q3: ");
            scores[i-1][2] = scan.nextInt();
            System.out.print("Q4: ");
            scores[i-1][3] = scan.nextInt();
            /*
            System.out.print( "Name: " + name + "\t");
            System.out.print( "Q1: " + scores[i-1][0] + "\t");
            System.out.print( "Q2: " + scores[i-1][1] + "\t");
            System.out.print( "Q3: " + scores[i-1][2] + "\t");
            System.out.print( "Q4: " + scores[i-1][3] + "\t");
            System.out.println();
            */
        }
        System.out.format("%15s%15s%15s%15s%15s%15s%n", new String[] {"Name", "Q1", "Q2", "Q3", "Q4", "Total"});
        for (int i = 0; i < names.length; i++) {
            double total = scores[i][0] + scores[i][1] + scores[i][2] + scores[i][3];
            System.out.format("%15s%15s%15s%15s%15s%15s%n", new String[] {names[i], 
                    String.valueOf(scores[i][0]), 
                    String.valueOf(scores[i][1]), 
                    String.valueOf(scores[i][2]), 
                    String.valueOf(scores[i][3]),
                    String.valueOf(total)
                    });
        }
    }
    
}

【讨论】:

  • 非常感谢我能弄明白。
  • 您可以将此答案标记为正确。
猜你喜欢
  • 2021-06-10
  • 2018-06-05
  • 2014-03-25
  • 2011-03-02
  • 1970-01-01
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多