gpt4 book ai didi

Java数组/二维数组用户输入和显示

转载 作者:行者123 更新时间:2023-11-30 03:11:01 26 4
gpt4 key购买 nike

我正在尝试编写一种方法,允许用户输入运动队的球员人数、比赛次数、球员姓名以及每个球员每场比赛的得分。

基本上,我想要以下显示输出,其中所有信息均由用户提供:

Player  Game 1  Game 2  Game 3  Game 4
Tom
Dick
Harry
Matthew
John

...然后是每个玩家在每场比赛中的得分。

我承认这个小项目源于家庭作业,但我已经交了作业,而且作业甚至没有要求用户提供输入。我真的只是想知道如何做到这一点。

下面是我的代码。有几个问题。

  1. 我将每个玩家的名字分配给一个名为 playerRoster 的数组。不是所有数组都在 arrayName[0] 处初始化吗?但是当我打印 playerRoster[0] 时,没有任何显示。当我打印 playerRoster[1] 时,会显示我为数组输入的第一个名称(应在 playerRoster[0] 处索引)。为什么?

  2. 与上述相关:系统提示我输入名单上的球员人数,并说我输入数字 5。但是提示只允许我输入 4 个名字。为什么?

  3. 上面的显示就是我正在寻找的内容,并且我确信有内置的 Java 方法用于显示值表。我其实不想这样。我有点想继续循环,就像我现在所做的那样。 (我知道,我知道——乞丐不能挑剔)

这是我的代码

import java.util.*;

public class BasketballScores
{
public static void main (String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println ("Enter the number of players on roster: ");
int numPlayers = input.nextInt();
System.out.println();
System.out.println ("Enter the number of games played: ");
int numGames = input.nextInt();
System.out.println();
int[][] arrayScores = new int[numPlayers][numGames];
String[] playerRoster = new String[numPlayers];
System.out.println ("Enter player names: ");
for (int j = 0; j < numPlayers; j++)
{
playerRoster[j] = input.nextLine();
}
for (String element: playerRoster)
{
System.out.println (element);
}
System.out.println();
System.out.println ("Enter the points scored per player per game: ");
System.out.println();

System.out.print (playerRoster[1]);
for (int i = 0; i < numPlayers; i++)
{
for (int k = 0; k < numGames; k++)
{
arrayScores[i][k] = input.nextInt();
}
}
System.out.println();

for (int i = 0; i < numPlayers; i++)
{
System.out.println();
for (int k = 0; k < numGames; k++)
{
System.out.print (arrayScores[i][k] + ", ");
}
}
}
}

最佳答案

首先,在获得玩家姓名之前,您仍然在与 numGames 通话。在尝试解析您的姓名之前,您需要调用 input.nextLine()。这应该可以解决您的前两个问题。 #nextLine 发生的情况是,您将转到当前所在行的行尾。获得 numGames 后,您仍然处于该状态。调用 input.nextLine() 前进到包含您的玩家姓名的行。

System.out.println ("Enter the number of players on roster: ");
int numPlayers = input.nextInt();
System.out.println();
System.out.println ("Enter the number of games played: ");
int numGames = input.nextInt();
input.nextLine(); //You need this to go to the next line before attempting to get your player names.
System.out.println();
int[][] arrayScores = new int[numPlayers][numGames];
String[] playerRoster = new String[numPlayers];
System.out.println ("Enter player names: ");
for (int j = 0; j < numPlayers; j++)
{
playerRoster[j] = input.nextLine();
}

要格式化打印,您可以使用System.out.printf。这是一个适合您情况的简单示例,您应该能够利用。 Quick reference guide

String[] players = new String[]{"Tom", "Dick", "Harry", "Matthew", "Johh"};
System.out.printf("%-10s%6s%6s%6s%6s","Player", "Game1 ", "Game2 ", "Game3 ", "Game4 ");
System.out.println();
Random r = new Random();
for (String player : players){
System.out.printf("%-10s%3d%6d%6d%6d",player, r.nextInt(10), r.nextInt(10), r.nextInt(10), r.nextInt(10));
System.out.println();
}

输出:

Player    Game1 Game2 Game3 Game4 
Tom 2 9 7 3
Dick 8 1 8 4
Harry 9 2 0 2
Matthew 5 1 3 2
Johh 8 4 0 2

一旦您分享了您如何尝试输入数据,我就可以提供更多帮助。希望这可以帮助!

关于Java数组/二维数组用户输入和显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com