格式化二维数组中输入的数据

Posted

技术标签:

【中文标题】格式化二维数组中输入的数据【英文标题】:Format data entered in 2d array 【发布时间】:2017-02-01 21:56:48 【问题描述】:

在程序中,您必须输入 4 名球员的保龄球得分,例如:

输入球员约翰的分数 1 ---> 5 输入球员比尔的得分 1 ---> 7 输入玩家 Bob 的分数 1 ---> 8 输入玩家菲尔的分数 1 ---> 10

和上面一样,每个玩家得分 10 分。我遇到的麻烦是在输入每个分数后制作一个表格来显示当前分数。当更新最右侧显示的新分数时,它还必须更新迄今为止的总分数。表格应该是这样的

Picture of what table is to look like

这是我目前的代码。

package bowling;

import java.util.Scanner;

public class bowling 

private static final int NUMBER_OF_ENDS = 10;
private static String[] player = new String[4];
private static int[][] scores = new int[4][NUMBER_OF_ENDS];

public static void addPlayer() 
    Scanner input = new Scanner(System.in);
    for (int counter = 0; counter < player.length; counter++) 
        System.out.println("Enter player #" + counter + " name");
        player[counter] = input.nextLine();

    


public static void addScores() 
    Scanner input = new Scanner(System.in);
    for (int inner = 0; inner < NUMBER_OF_ENDS; inner++) 
        for (int counter = 0; counter < player.length; counter++) 

            System.out.print("Enter score number " + (inner + 1) + " score for " + player[counter] + "---->");
            scores[counter][inner] = input.nextInt();

        
    


【问题讨论】:

您可以将所有分数的矩阵初始化为 0。您还可以有一个额外的数组来跟踪当前分数 - 这将只是该玩家迄今为止所有分数的总和。这个总和必须在每次插入后调用。 【参考方案1】:

我会使用一个单独的数组来存储玩家总数,称之为:

int[] totals = new int[4];

您可以在每次添加新分数时增加总分:

scores[counter][inner] = score;
totals[counter] += score; // increment the total for that player

您可以编写一个名为 showScores() 的方法,每次添加分数时调用该方法,并增加总分:

scores[counter][inner] = score;
totals[counter] += score; // increment the total for that player
showScores();

在该方法中,您需要:

遍历每个玩家 从players 数组中打印名称,然后在scores 数组中为该玩家迭代并打印他们的每个分数,然后使用相同的玩家索引从totals 数组中打印他们的总分.

我将把这部分留给你,因为它并不比你已经写的更难,它只是一个稍微不同的嵌套循环。让它打印出正确的数据,然后再进行格式化。

【讨论】:

以上是关于格式化二维数组中输入的数据的主要内容,如果未能解决你的问题,请参考以下文章

Java基础——二维数组

C语言实现一个可变长的二维数组

c语言中怎样实现对二维数组元素进行赋值并输出。

python练习题4.27二维数组中每行最大值和每行和

C语言如何定义一个N行N列的二维数组任意输入数据

二维数组找鞍点