在二维数组中添加行、列、对角线(java) import java.util.Scanner; 班长 { 公共静态void main(字符串参数[]) { int i,j; 扫描仪阅读器=新扫描仪(System.in); int数组[][]=新的int[4][4]; System.out.println(“输入数字:”); 对于(i=0;i

在二维数组中添加行、列、对角线(java) import java.util.Scanner; 班长 { 公共静态void main(字符串参数[]) { int i,j; 扫描仪阅读器=新扫描仪(System.in); int数组[][]=新的int[4][4]; System.out.println(“输入数字:”); 对于(i=0;i,java,Java,我用java编写了这段代码,要求用户输入16个数字,然后在4x4数组中打印这些数字。我必须找到每一列、每一行和每一条对角线的和。我不知道怎么做。在java中初始化数组后,不能更改数组的长度。在这里,您可以做和应该做的是将旧数组的内容复制到具有更多行/列的新数组中。对角线也是如此。在Java中,数组的长度是不可变的,这意味着您不能在案例中添加或删除列或行。您可能需要查看集合,例如ArrayLists。它们有一个允许扩展的实现 您可以随时阅读更多有关集合的信息。我不知道您在代码中要做什么,您只需输入

我用java编写了这段代码,要求用户输入16个数字,然后在4x4数组中打印这些数字。我必须找到每一列、每一行和每一条对角线的和。我不知道怎么做。

在java中初始化数组后,不能更改数组的长度。在这里,您可以做和应该做的是将旧数组的内容复制到具有更多行/列的新数组中。对角线也是如此。

在Java中,数组的长度是不可变的,这意味着您不能在案例中添加或删除列或行。您可能需要查看
集合
,例如
ArrayList
s。它们有一个允许扩展的实现


您可以随时阅读更多有关
集合的信息。

我不知道您在代码中要做什么,您只需输入并打印4x4数组。在java中,数组是固定的,您可以使用
ArrayList
和其他内置类以更简单的方式完成这项工作。此算法对于输入的可变大小是一种很好的方法,因为
4
可以被任何值替换:

import java.util.Scanner;

class Main 
{
  public static void main(String args[]) 
  {
    int i, j;
    Scanner reader = new Scanner (System.in);
    int array[][] = new int[4][4];

    System.out.println("Enter Numbers: ");

    for (i = 0; i < 4; i++)
      for (j = 0; j < 4; j++)
        array[i][j] = reader.nextInt();

    System.out.println("Square: ");
    for (i = 0; i < 4; i++) 
    {
      for (j = 0; j < 4; j++)
        System.out.print(array[i][j] + " ");
    System.out.println();
    }
  }
}

第一个可以很容易地针对各种大小进行调整,但是是N^2,第二个是N,但是今天对于4x4矩阵来说这并不重要,因为它是4*2*4(32)循环运算,与4循环运算相比,对于今天的CPU来说并不是什么大问题。

我会在Java中使用集合,谢谢!我想我问错问题了。但是我编辑了它。我想问的是如何计算每行、每列、每对角线的总和。谢谢!我想我问错问题了。但是我编辑了它。我想问的是如何计算每一行、每一列、每一对角线的总和。请不要填鸭式地回答。提供代码而不做任何解释,这就没有机会理解手头的问题以及如何解决它。@Turing85我更新了我的答案,我希望这就足够了。
int matrixWidthHeight = 4;
int rowSum[matrixWidthHeight];
int columnSum[matrixWidthHeight];

for (int i = 0; i < matrixWidthHeight; ++i) {
   for (int j = 0; j < matrixWidthHeight; ++j)
       rowSum[i] += arr[i][j];

   for (int j = 0; j < matrixWidthHeight; ++j)
       rowSum[i] += arr[j][i];
   
   sumDiagonal1 += arr[i][matrixWidthHeight - i]; // / diagonal sum
   sumDiagonal2 += arr[matrixWidthHeight - i][i]; // \ diagonal sum
}
int rowSum[4];
int columnSum[4];
for (int i = 0; i < 4; ++i) {
   rowSum[i] += arr[i][0];
   rowSum[i] += arr[i][1];
   rowSum[i] += arr[i][2];
   rowSum[i] += arr[i][3];

   columnSum[i] += arr[0][i];
   columnSum[i] += arr[1][i];
   columnSum[i] += arr[2][i];
   columnSum[i] += arr[3][i];
   
   sumDiagonal1 += arr[i][4 - i]; // / diagonal sum
   sumDiagonal2 += arr[4 - i][i]; // \ diagonal sum
}