java 如何将我的1D阵列修复为功能性2D阵列(作业帮助)

uqdfh47h  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(160)

我试图将一个1D数组转换为2D数组,但我不确定如何修复我的 for 循环以使其正确编译和打印。我已经改变了我声明的变量,所以输入的数字会进入数组,但也许我没有正确地加载它们?或者也许我在 for 循环中要求的是不正确的?

public static void main(String[] args) 
{
      System.out.println("Ashanti's Assignment");
    int[][] numbers = new int[0][7];
    int[][] digits = new int[0][7];
    int[][] count = new int[0][7];
  int i = 0;
  int j = 0;      
  
  Scanner input = new Scanner(System.in);
  
  System.out.println("Enter seven numbers: ");
  
  for(i=0;i<7;i++)
      numbers = new int [0][7];
  
  for(i=0;i<7;i++)
  {
      for (j=0;j<7;j++)
      {
          if (numbers[i]==numbers[j])
          {
              digits[i]=numbers[i];
             }
      }
  }
 System.out.println("The integers selected and their counts");
 
 for(i=0;i<7;i++)
     System.out.println("Number " + digits[i] + " occurs " 
             + count[i] + " times");   
}

}
我看了另一篇文章,但它并没有帮助我理解该怎么做。

rkkpypqq

rkkpypqq1#

你在一开始就被卡住了。
你已经写了int[][] numbers = new int[0][7];,它说创建一个包含0个元素的多维数组。
让我们暂时抛开多维的复杂性。从普通数组开始。你的看起来像这样:

int[] numbers = new int[0];

我们创建了一个包含0个元素的数组。因此,我们不能向数组中添加任何数据。
创建数组时,需要预先知道数组中需要多少元素。
例如,如果你想要7个元素:

int[] numbers = new int[7];

接下来,您可以添加回多维数组的复杂性。你想在第二维中有多少个元素?也是7?还是别的?假设你只想在第二维中有2个元素。

int[][] numbers = new int[7][2];

这有意义吗?
你遇到的下一个问题是:

for(i=0;i<7;i++)
      numbers = new int [0][7];

对于每个循环,(例如7次),您正在创建一个新的多维数组并将其分配给numbers。您不需要这样做,因为您已经初始化了上面的numbers变量。我不能在这里提供任何建议,因为我不知道你在这里打算做什么。

相关问题