格式化二维数组中输入的数据
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
数组中打印他们的总分.
我将把这部分留给你,因为它并不比你已经写的更难,它只是一个稍微不同的嵌套循环。让它打印出正确的数据,然后再进行格式化。
【讨论】:
以上是关于格式化二维数组中输入的数据的主要内容,如果未能解决你的问题,请参考以下文章