gpt4 book ai didi

java - 扫描和修改二维阵列

转载 作者:太空宇宙 更新时间:2023-11-04 15:12:39 25 4
gpt4 key购买 nike

我在需要搜索包含座位价格信息的最终静态数组(简单的学校项目)的方法时遇到了一些问题。

座位价格数组如下(称为sealingArray):

10  10  10  10  10  10  10  10  10  10 
10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10
10 10 20 20 20 20 20 20 10 10
10 10 20 20 20 20 20 20 10 10
10 10 20 20 20 20 20 20 10 10
20 20 30 30 40 40 30 30 20 20
20 30 30 40 50 50 40 30 30 20
30 40 50 50 50 50 50 50 40 30

在代码中,我有一个方法需要搜索数组并找到包含该价格的所有座位。如果它找到与价格匹配的座位,它会将价格添加到具有相同尺寸 (9x10) 的空二维数组(称为matchedSeats)中。

这是我到目前为止所拥有的,它目前用价格而不是匹配的座位填充整个数组。
static void price()
{
Scanner inputInt = new Scanner(System.in);

System.out.println("What price seat are you looking for? ("
+ "$10, $20, $30, $40, $50)");
int price = inputInt.nextInt();

if((price < 10 || price > 50) || price % 10 != 0)
{
System.out.println("Incorrect price.");
price();
}

int[][] matchedSeats = new int[9][10];

for(int i = 0; i < ROWS; i++)
{
for(int j = 0; j < COLUMNS; j++)
{
if(seatingArray[i][j] == price)
{
matchedSeats[i][j] = price;
}
}
}
}

*只是快速编辑,错误是当打印匹配座位数组时,数组中的所有值都被用户输入的价格变量覆盖。我从充满鳗鱼的气垫船那里得到了答案:条件语句中的逻辑检查出来了,但是我使用的打印方法导致了错误。

最佳答案

您发布的代码和您描述的不当行为似乎不匹配。实际上,您的代码对我来说看起来不错:

for(int i = 0; i < ROWS; i++)
{
for(int j = 0; j < COLUMNS; j++)
{
if(seatingArray[i][j] == price)
{
matchedSeats[i][j] = price;
}
}
}

你确定它行为不端?你在哪里打印出matchedSeats 数组来测试它?

我不认为你应该使用递归,尤其是不像你这样做:
if((price < 10 || price > 50) || price % 10 != 0)
{
System.out.println("Incorrect price.");
price();
}

因为如果输入了错误的价格数据,虽然方法调用将递归地重复,但价格方法最终将用错误的数据完成。

相反,将您请求价格输入的代码放入一个循环中,该循环一直重复,直到输入有效价格。

另外,请避免使用您正在使用的魔数(Magic Number)。所以而不是:
int[][] matchedSeats = new int[9][10];

做类似的事情:
int[][] matchedSeats = new int[ROWS][COLUMNS];

关于java - 扫描和修改二维阵列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21174479/

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