[在Java中,我如何打印一个类似于座位表的二维数组,中间是一个“过道”? [关闭]

问题描述 投票:-2回答:1

我正在做一个作业,我必须打印一个类似于座位表的二维数组。每个元素都有一个数字,当您遍历数组时,数字会增加,并且在中间没有人能坐的地方也有一个“过道”。下面是数组的外观。

1  2  3  x 4  5  6 
7  8  9  x 10 11 12
13 14 15 x 16 17 18
19 20 21 x 22 23 24

这将一直持续到总共有48个席位。这将使其具有8行和7列。

目前,我的代码是错误的。我试图制作将xs替换为代码第四列的代码,但这没有用。到目前为止,这是我的代码。我的代码在运行时只显示0。

public class airplane {

    public static void main(String[] args) {
        int[] rows = new int[8];
        int[] columns = new int[7];

        int[][] chart = new int[rows.length][columns.length];

        for(int j = 0; j < rows.length; j++)
        {
            for(int k = 0; k < columns.length; k++)
            {
                if(columns.length == 4)
                {
                    chart[j][k] = 'x';
                }
                System.out.print(chart[j][k] + " ");
            }
            System.out.println();
        }

    }
}

如果代码错误,我深表歉意。我没有经验,我现在没有太多帮助。

java arrays for-loop 2d
1个回答
1
投票

可以通过以下2个for循环来完成,其中第一个循环逐列迭代,第二个循环逐行迭代

public class Print2DArray {

    public static void main(String[] args) {
        int seatNo = 1;
        int row = 8;    // set row count
        int column = 7; // set column count

        int[][] print2DArray = new int[row][column];  // init your 2d seat matrix

        for (int i = 0; i < print2DArray.length; i++) {
            for (int j = 0; j < print2DArray[i].length/2; j++) {
                System.out.print(seatNo++ + " ");
//                System.out.print(print2DArray[i][j]++ + " ");  // You can use this line to print the value on the current position in the array position
            }
            System.out.print("x ");
            for (int j = 0; j < print2DArray[i].length/2; j++) {
                System.out.print(seatNo++ + " ");
//                System.out.print(print2DArray[i][j]++ + " ");  // You can use this line to print the value on the current position in the array position
            }
            System.out.println();
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.