Java*二维数组*在数组上打印点

Java*二维数组*在数组上打印点,java,arrays,multidimensional-array,methods,plot,Java,Arrays,Multidimensional Array,Methods,Plot,我有一个JAVA类的作业。我们正在讨论二维数组,但是在这个特殊的赋值上,我不知道如何返回特定的点并用特定的值设置这些点。以下是作业: 编写一个名为create2DArray的方法,该方法将填充、创建并返回一个随机数在1到100之间的10 x 10 2d数组。编写一个名为print2DArray的方法,该方法将以行-列方式打印10 x 10 2D数组。编写一个名为createCoords的方法,该方法将搜索2D数组,查找任何可被3整除的值。找到号码后,应记录行、列和位置。这意味着,当您的方法完成时

我有一个JAVA类的作业。我们正在讨论二维数组,但是在这个特殊的赋值上,我不知道如何返回特定的点并用特定的值设置这些点。以下是作业:

编写一个名为create2DArray的方法,该方法将填充、创建并返回一个随机数在1到100之间的10 x 10 2d数组。编写一个名为print2DArray的方法,该方法将以行-列方式打印10 x 10 2D数组。编写一个名为createCoords的方法,该方法将搜索2D数组,查找任何可被3整除的值。找到号码后,应记录行、列和位置。这意味着,当您的方法完成时,它将生成一个坐标列表,我可以使用该列表绘制图形。此方法还必须返回可被3整除的坐标数,以便我知道有多少点要绘制。只要我得到一个行、列位置的列表,我就不知道如何返回坐标。因此,我将留给您来制定一种返回值的机制。要测试您是否已记录坐标,请创建另一个名为fillLocations的函数,该函数将使用-1填充您记录的数组中的位置。因此,您的程序应该按照以下顺序流动:1.create2DArray 2.print2DArray 3.createCoords 4.fillLocations 5.print2DArray

我理解并已完成create2DArray和print2DArray,但我无法理解createCoords和FillLocation。以下是迄今为止我所掌握的,但它不起作用,并且存在错误:

public int createCoords(int row1, int col1){
int[][] coords = new int[row1][col1];  
int[][] count = new int[0][0];
int co = 0;
for(int row = 0; row < 10; row++)
{
    for(int col = 0; col < 10; col++)
    { 
    if(coords[row][col] % 3 == 0)
        co++;
        return count[row][col];
    }
}
return co;}
public int fillLocations(int[][] count){
int x = 0;
int y = 0;
for(int row = 0; row < 10; row++)
{
    for(int col = 0; col < 10; col++)
    {
    if(count[row][col] % 3 == 0)
        x = row;
        y = col;
        break;
    }
}
return (x, y);}
public int-createCoords(int-row1,int-col1){
int[]coords=新int[row1][col1];
int[][]计数=新int[0][0];
int co=0;
对于(int行=0;行<10;行++)
{
for(int col=0;col<10;col++)
{ 
如果(坐标[行][col]%3==0)
co++;
返回计数[行][col];
}
}
返回co;}
公共整数填充位置(整数[][]计数){
int x=0;
int y=0;
对于(int行=0;行<10;行++)
{
for(int col=0;col<10;col++)
{
如果(计数[行][col]%3==0)
x=行;
y=col;
打破
}
}
返回(x,y);}

您的代码有几个问题。首先,对于fillLocations方法,您需要返回单元格数([row][column]),其中的值可以被3整除。这意味着对于通过测试的每个值: if(坐标[行][col]%3==0) 那么你应该把计数器增加1。 因此,对于这一部分,您的代码如下所示:

int [][] your2DArray = new int[10][10];
...
private int getNumberOfValuesDivisibleByThree(){ 
int numberOfValuesDivisibleByThree = 0;
 for (int row=0; row < your2DArray.length; row++){
  for(int col = 0; col < your2DArray[0].length; col++){
   if(your2DArray[row][col] % 3 === 0){      
     //value at this coordinate or in this cell is divisible by 3
     //here you can 'log' the coordinates as required - 
     System.out.println(row+","+col);
     //increment the count
     numberOfValuesDivisibleByThree  +=1;
   }
  }
 }
//return the final count
return numberOfValuesDivisibleByThree;  
}
int[]your2DArray=newint[10][10];
...
private int GetNumberOfValuesDivisible By Three(){
int numberOfValues可分为三个=0;
for(int row=0;row

请参阅如何在Java中创建和操作2D数组

我不打算写代码,但我要做的是:

我将有一个单独的2d布尔数组,大小与2d int数组相同,自动填充false。这将进入createCoords

使用嵌套for循环遍历2d int数组的所有地址,当我找到一个可被3整除的数字时,我将布尔数组上的对应点标记为“true”。这也会出现在createCoords中

for循环完成后,我再看看原始的2dint数组和boolean数组。我会再次使用嵌套for循环,当我在布尔数组上找到一个真值时,我会将int数组上的对应位置标记为-1。这会在很多地方发生。还应将2d布尔数组与2d int数组一起传递给fillLocation

祝你好运


编辑:假设FillLocation函数将10x10 int数组中的值替换为-1。这就是我对你的问题的解释。如果我错了,请纠正我。我还在每段代码的末尾添加了一个简短的描述。

请不要将同一个问题发布两次,因为您不喜欢从测试中得到的结果。投票关闭。第一个不包含图像,将很快被删除@CheiftwoPencil我认为数组初始化和数组指针混淆了。仔细看一下语法上的差异,这是正确的,我用-1值替换任何可被3整除的数字,其他值保持不变。然而,我不确定我将如何编码您所陈述的内容,以及所有内容将属于何处?非常感谢您的帮助。@computer programmer我编辑了这篇文章,所以现在在每个“部分”的末尾解释了代码应该放在哪个函数中。不过,我将把实际的编程工作留给你们自己去做。我找到了它,并且有了一个工作程序!非常感谢你的帮助@coolioasjulio@computer-程序员我很高兴你明白了!别忘了标出正确的答案!