gpt4 book ai didi

java - 如何将 6 个整数数组与二维整数数组 [19][5] 进行比较?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:34 24 4
gpt4 key购买 nike

我正在为学校做一个项目,但无法解决这个问题。顺便说一句,我是一个非常初级的初学者。

我有一个二维数组,名为 tickets[19][6] 20 张票,每张票有 6 个整数。我正在尝试将这 20 张票与一个常规的整数数组进行比较,该数组包含 6 个名为 winner[5] 的数字,这是我从 .txt 文件中读取的。

两个数组说明如下:

public static int[] winner = new int[5]
public static int[][] tickets = new int[19][5]

请记住,我对此很陌生,非常感谢提前提供的任何帮助!

编辑 这是我用来将用户输入分配给我的二维数组的循环,当我完成整个过程时才意识到这是一个无限循环。我以为写代码会更……好吧,写!到目前为止,似乎更像是调试的艺术。

static void ticketNumberArray(){

int number = 1; // which of the six numbers you need from the ticket
int ticketCount = 1; // which ticket (out of 20) you are currently on

while(ticketCount<21){ // sentinel controlled while loop,
// will continue until the twentieth ticket is entered
System.out.println("Please type number " +number+ " of ticket number " +ticketCount+ ".");
//asks for the numbers of the ticket your currently on

Scanner keyboard = new Scanner(System.in); // initiates a scanner variable

int ticketNumber = keyboard.nextInt(); // assigns user input to the double variable ticketNumber
// and initializes as a double

tickets[ticketCount-1][number-1]=ticketNumber; // assigns user input into a 2-d array

number++; //Sentinel variable

if(number==7){ //loop that controls the ticket count, every 6 numbers ='s one ticket
ticketCount++;
number=1;
}
}
}

最佳答案

首先,声明数组时放入[ ] 的数字就是数组的大小。因此,要创建一个包含六个项目的数组,您需要放置 [6]。索引将编号为 0-->5。

您只需遍历 tickets 数组中的票“行”,并将其与 winner 数组进行比较。每行是一张inviidual票。二维数组中的“列”将是构成门票的各个数字。

如果票中各个数字的顺序很重要,您可以将 Louis 的建议与 Arrays.equal 一起使用。 (即,如果赢家是 0-1-2-3,您只能用彩票 0-1-2-3 中奖——大多数彩票允许您赢得任何组合。)

for(int i=0; i < tickets.length; i++)
{
int[] ticket = tickets[i];

if(Arrays.equals(ticket, winner))
{
// This one is the winner

// For efficiency you should probably stop looping
break;
}
}

编辑:

很多介绍教授不喜欢学生使用 API。因此,您必须编写自己的 equals 函数。

private static boolean areEqual(int[] a, int[] b)
{
if(a == null && b == null)
return true;

// Not equal if one is null and the other is not
if(a == null || b == null)
return false;

if(a.length != b.length)
return false;

// When we get here we have to check each element, one by one
// Implementation left as exercise :-)
}

关于java - 如何将 6 个整数数组与二维整数数组 [19][5] 进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273421/

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