您好我正在尝试根据用户输入自动填充二维数组。 用户将输入1个数字,此数字将设置2d数组的大小。然后我想打印出数组的数字。 例如,如果用户输入数字4。 2d数组将是4行乘4列,并且应该包含数字1到16,并打印出如下。
1-2-3-4
5-6-7-8
9-10-11-12
13-14-15-16
但我正在努力思考能够做到这一点的正确陈述。 目前我的代码只打印出一个包含*。
的二维数组有没有人知道如何打印数字,我真的卡住了。 我的代码如下:
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.println("Enter room length");
int num1 = input.nextInt();
int num2 = num1;
int length = num1 * num2;
System.out.println("room "+num1+"x"+num2+"="+length);
int[][] grid = new int[num1][num2];
for(int row=0;row<grid.length;row++){
for(int col=0;col<grid[row].length;col++){
System.out.print("*");
}
System.out.println();
}
}
答案 0 :(得分:4)
读取n值,
int[][] arr = new int[n][n];
int inc=1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
arr[i][j]=inc;
inc++;
}
答案 1 :(得分:1)
嗯,首先你必须用数字填充数组。你可以使用double for循环和一个计数器变量,它在内部for循环的每个循环之后递增。
int counter = 1;
for(int x = 0; x < num1; x++)
{
for(int y = 0; y < num2; y++)
{
grid[x][y] = counter++;
}
}
之后,您可以使用double for循环再次输出数组。
答案 2 :(得分:0)
我不确定我是否理解你。 你有代码打印问题*?
如果是,那么原因就是这个
System.out.print("*");
应该是
System.out.print(grid[row]);
答案 3 :(得分:0)
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter room length");
int arraySize = input.nextInt();
System.out.println("Length: " + (arraySize*arraySize));
int[][] array = new int[arraySize][arraySize];
int count = 1;
for (int i=0;i<arraySize;i++) {
for (int j=0;j<arraySize;j++) {
array[i][j] = count;
if (j != (arraySize-1))
System.out.print(count + "-");
else
System.out.println(count);
count++;
}
}
}
此代码应打印出您想要的数字。