我有一个我初始化的2D数组:int[][] mat = new int [10][10]
。然后我问用户他想要多少行和列。例如,他插入row=3, col=4
。
我怎样才能使用这个尺寸([3] [4]),所以我不会看到所有的零?我只想将12个值插入100个值数组。
int[][] mat = new int[10][10];
int row, col;
do {
System.out.println("enter rows: ");
row = s.nextInt();
if (row > 10) {
System.out.println("value should be between 1-10, try again ");
}
} while (row > 10);
do {
System.out.println("enter cols: ");
col = s.nextInt();
if (col > 10) {
System.out.println("value should be between 1-10, try again ");
}
} while (col > 10);
mat[10][10] = mat[10 - 10 + row][10 - 10 + col];
System.out.println("enter: " + row * col + " values");
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat[i].length; j++) {
mat[i][j] = s.nextInt();
}
}
答案 0 :(得分:3)
推迟创建矩阵怎么样:
int row, col;
do{
System.out.println("enter rows: ");
row = s.nextInt();
if (row > 10){
System.out.println("valuse should be between 1-10, try again ");
}
}while(row > 10);
do{
System.out.println("enter cols: ");
col = s.nextInt();
if (col > 10){
System.out.println("valuse should be between 1-10, try again ");
}
}while(col > 10);
int[][] mat = new int[rows][cols];//create matrix here
请注意,通过推迟创建矩阵,可以允许超过10
行或列。如果某人输入100
并且您的程序没有拒绝此操作,则可以创建一个包含100
行/列的矩阵。
您还应检查输入是否大于(或等于)零。你见过有-5
行的矩阵吗?
这句话完全没有意义:
mat[10][10] = mat[10-10+row][10-10+col];
它不会造成任何伤害,因为它可以保证边界是正确的,但由于值是在0
上初始化的,因此无用。
一个小的拼写修正:它的&#34;值&#34; ;不是&#34; valuse&#34; 以及&#34;零&#34; (而不是&#34; zerows&#34; ,除非你想听起来像海盗一样;)。