如何使用另一个的信息创建二维网格数组

时间:2015-11-16 01:47:38

标签: java arrays methods

我试图用随机数字打印一个2d网格,用-1s打印另一个大小相等的网格代替可被3整除的数字。我完成了很多东西,但第二个网格只打印-1s。我究竟做错了什么?如何让第二个网格只能打印-1s,其中数字可以被3整除?谢谢!

public class practice

{



   public int[][] createArray(int rSize, int cSize) {

        Random r = new Random();

        int[][] array = new int[rSize][cSize];

        for (int row = 0; row < array.length; row++) {

            for (int col = 0; col < array[0].length; col++) {

                array[row][col] = r.nextInt(25);

            }

        }

        return array;

    }

    public void print2DArray(int[][] Array) {

        for (int row = 0; row < Array.length; row++) {

            for (int col = 0; col < Array[0].length; col++) {

                System.out.print(Array[row][col] + "\t");

            }

            System.out.println("\n");

        }

    }

    public int[][] createCoords(int[][] Array) {

        int[][] coord = {

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1},

            {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}

        };

        for (int row = 0; row < coord.length; row++) {

            for (int col = 0; col < coord[0].length; col++) {

                System.out.print(coord[row][col] + "\t");

            }

            System.out.println("\n");

        }

        for (int row = 0; row < coord.length; row++) {

            for (int col = 0; col < Array[row].length; col++) {

                if (Array[row][col] % 3 == 0) coord[row][col] = -1;

            }

       }

        return coord;

    }

    public static void main(String[] args) {

        Scanner in = new Scanner(System. in );

        practice c = new practice();

        int[][] myArray;



        myArray = c.createArray(10, 10);



        c.print2DArray(myArray);

        c.createCoords(myArray);

    }

}

1 个答案:

答案 0 :(得分:0)

在您检查coords元素为3的倍数之前,您似乎正在打印Array数组,此外,您正在初始化{{1}所有-1所以将coords的元素更改为-1确实......没有。将coords初始化为所有0(这是默认设置,因此您根本不需要初始化它,只需声明它),然后在检查coords后打印它。

一些风格的东西:首先,初始大写标识符通常是为类保留的,实际上标准类库中已经有Array。请改用java.lang.reflect.Array,或者更好的是,使用描述它使用的名称,而不是它的类型。其次,您已经有了array方法,为什么不在print2DArray中使用它?最后,createCoords需要与coords(或者您将其重命名为:-)的大小相同),因此您应该声明它。如果您更改传递给Array的尺寸,则必须记住也要更改createArray