我试图将一个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");
}
}
我看了另一篇文章,但它并没有帮助我理解该怎么做。
1条答案
按热度按时间rkkpypqq1#
你在一开始就被卡住了。
你已经写了
int[][] numbers = new int[0][7];
,它说创建一个包含0个元素的多维数组。让我们暂时抛开多维的复杂性。从普通数组开始。你的看起来像这样:
我们创建了一个包含0个元素的数组。因此,我们不能向数组中添加任何数据。
创建数组时,需要预先知道数组中需要多少元素。
例如,如果你想要7个元素:
接下来,您可以添加回多维数组的复杂性。你想在第二维中有多少个元素?也是7?还是别的?假设你只想在第二维中有2个元素。
这有意义吗?
你遇到的下一个问题是:
对于每个循环,(例如7次),您正在创建一个新的多维数组并将其分配给
numbers
。您不需要这样做,因为您已经初始化了上面的numbers
变量。我不能在这里提供任何建议,因为我不知道你在这里打算做什么。