在Java中学习二维数组-学校作业

在Java中学习二维数组-学校作业,java,Java,我对如何开始我正在做的这个问题有点困惑。我正在尝试一个二维数组,它最终将计算两点之间的距离。我对如何设置阵列感到困惑。它的工作方式是用户将给我点的数量(x,y坐标)。这将是两个数组(行和列)的长度。我现在需要用用户的输入填充数组。到目前为止,我是如何设置它的: int points, x , y; Scanner scan= new Scanner(System.in); System.out.println("Please enter the number of p

我对如何开始我正在做的这个问题有点困惑。我正在尝试一个二维数组,它最终将计算两点之间的距离。我对如何设置阵列感到困惑。它的工作方式是用户将给我点的数量(x,y坐标)。这将是两个数组(行和列)的长度。我现在需要用用户的输入填充数组。到目前为止,我是如何设置它的:

    int points, x , y;

    Scanner scan= new Scanner(System.in);

    System.out.println("Please enter the number of points: ");
    points = scan.nextInt();

    int[][] coord = new int[points][points];
    for(int i =0; i < coord.length; i++)
        for(int j = 0; j < coord[i].length; j++){
            System.out.println("Please enter the x coordinates: ");
            x = scan.nextInt();
            System.out.println("Please enter the y coordinates: ");
            y = scan.nextInt();
        }
    }
int点,x,y;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“请输入点数:”);
points=scan.nextInt();
int[][]坐标=新的int[点][点];
for(int i=0;i

我试图分别得到x和y坐标,然后用它们填充数组。我该怎么做呢?

既然你已经知道你只有x和y坐标,我就硬编码这个数字。 按如下方式更改代码:

int[][] coord = new int[points][2]; 
    for(int i =0; i < points; i++) {
            System.out.println("Please enter the x coordinates: "); 
            x = scan.nextInt(); 
            System.out.println("Please enter the y coordinates: "); 
            y = scan.nextInt(); 
           coord[i][0]=x;
            coord[i][1]=y;
    }
int[][]坐标=新的int[points][2];
对于(int i=0;i
x和y应该代表什么?按照这种设置方式,数组将是一个正方形,for循环将引导您浏览地图,但是对于每个单元格,您要求2个数字,您打算如何处理它们?你的意思是要在地图上的特定点上获取一段数据吗?X和Y应该表示数组的X和Y坐标。它们都将是相同的数量。我最终将使用距离公式。但这超出了我所要求的范围。我只是想用用户的输入填充我的数组。我刚才说的是代码中的变量
intx
inty
,为什么数组中的每个单元格都要2个整数?它们应该表示数组中要输入数据的位置还是其他位置?这是如何工作的?x和y坐标的数量相同,但取决于用户输入的内容。所以如果用户说有10分。数组是新的int[points][points]。没有?我想你对多维数组的工作原理感到困惑。这不是两个单独数组的组合。当我们用
int[points][2]
创建数组时,请这样想。首先,将创建长度为
点的1D阵列。现在,该数组的每个占位符都将有另一个长度为“2”(用于
x
y
)的
array
)。这是有道理的,但是,由于某些原因,提示x和y坐标现在在一个无限循环中,而不是长的点索引。这张图片可以帮助您理解我的猜测。顺便说一句,它很好用。你可能还有其他循环在无限运行。假设您仍然要求用户获取
点数的值
没关系。出于某种原因,无限循环仅在调试模式下发生。我一定是设置了奇怪的断点什么的。非常感谢。我想我能从这里继续前进。