英文:
how to print 2d array in java
问题
I'm here to assist with translation. Here's the translated code portion:
我需要在运行时提供行和列的值来打印一个二维数组。
```lang-java
package test;
import java.util.Scanner;
public class test1 {
	
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int rowsize = scan.nextInt();
		int i = 0; int j = 0;
		int rowarr[] = new int[rowsize];
		int colsize = scan.nextInt();
		int colarr[] = new int[colsize];
		int d[][] = new int[rowsize][colsize];
		for (i = 0; i < rowarr.length; i++) {
			rowarr[i] = scan.nextInt();
		}
		
		for (j = 0; j < colsize; j++) {
			colarr[j] = scan.nextInt();
		}
		
		for (int k = 0; k < rowarr.length; k++) {
			for (int m = 0; m < colarr.length; m++) {
				System.out.print(d[rowarr[k]][colarr[m]]);
			}
			System.out.println();
		}
	}
}
我在最后一行打印 d[rowarr[k]][colarr[m]] 时遇到了错误。是否有人可以提供建议?
<details>
<summary>英文:</summary>
I need to print a 2d array in which I will be giving the values for the row and column at run time.
```lang-java
package test;
import java.util.Scanner;
public class test1 {
	
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		int rowsize=scan.nextInt();
		int i=0;int j=0;
		int rowarr[]=new int[rowsize];
		int colsize=scan.nextInt();
		int colarr[]=new int[colsize];
		int d[][]=new int[rowsize][colsize];
		for( i=0;i<rowarr.length;i++) {
			rowarr[i]=scan.nextInt();
		}
		
		for( j=0;j<colsize;j++) {
			colarr[j]=scan.nextInt();
		}
		
		for(int k=0;k<rowarr.length;k++) {
			for(int m=0;m<colarr.length;m++) {
				System.out.print(d[rowarr[k]][colarr[m]]);
			}
			System.out.println();
		}
	}
}
I'm getting an error in last line while printing d[rowarr[k]][colarr[m]]. Could anyone provide suggestions?
答案1
得分: 1
数组 d[][] 对于 d[0...rowsize-1][0...colsize-1] 索引是可访问的。
但是,如果您尝试访问任何其他负数索引或大于 rowsize-1 的索引,比如 d[rowsize+5][0],那么它会产生错误。
同样地,如果您尝试访问 d[0][colsize+2] 或类似的索引,或者 d[0][-3],也会产生错误。
因此,如果您想要访问 d[x][y](其中 x 和 y 是整数),则 x 和 y 必须遵循以下规则:
- 0 <= x < rowsize
 - 0 <= y < colsize
 
请检查您是否正确访问了 d[][]。
英文:
As you are not providing any details about errors and constraints, I am answering on assumptions:
The array d[][] is accessible for d[0...rowsize-1][0...colsize-1] indices.
But, if you try to access any other index which in negative or which is greater than rowsize-1 like d[rowsize+5][0], then it'll produce error.
And likewise, if u try to access d[0][colsize+2] or something like that, or d[0][-3], it'll also give error.
So, if you want to access d[x][y] (where, x and y are integers) then x and y must follow the below rules:
- 0 <= x < rowsize
 - 0 <= y < colsize
 
check if you're accessing d[][] properly...
答案2
得分: 0
你遇到了ArrayIndexOutOfBoundsException,因为:
System.out.println(d[rowarr[k]][colarr[m]])
尝试访问d[][]数组的元素,使用特定的rowarr[k]和colarr[m]的值,超出了给定数组的范围。
例如,如果你将rowarr[0]填充为1,colarr[0]填充为6,但是你生成了大小分别为2和3的rowarr[]和colarr[]数组,那么在你的第一次迭代中,d[1][6](即d[rowarr[k]][colarr[m]])会越界,因为d[1]数组中没有第6个元素。
英文:
You're having an ArrayIndexOutOfBoundsException, because:
System.out.println(d[rowarr[k]][colarr[m]])
tries to access the element of d[][] array, with particular values of rowarr[k] and colarr[m], which goes outside the range of the given array.
For example, if you populate rowarr[0] with 1, colarr[0] - with 6, but you have generated rowarr[] and colarr[] arrays with the sizes of 2 and 3 respectively, then d[1][6] (at your first iteration - d[rowarr[k]][colarr[m]]), will be out of bounds, because there is no 6<sup>th</sup> element in the d[1] array.
答案3
得分: 0
我认为你的d数组仍然为空。它被初始化然后什么都没有发生。
英文:
Tell me if I'm wrong, but I think your d array remains empty. It's initialized and then nothing.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论