将更少的值放到更大的2d数组中

时间:2015-01-10 12:43:15

标签: java arrays

我有一个我初始化的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();
    }
}

1 个答案:

答案 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; ,除非你想听起来像海盗一样;)。