在二维数组中交替打印行和列

时间:2015-05-07 16:36:01

标签: java

我有以下代码用于打印二维数组。我想交替打印这个数组中的行和列。

public class TwoDimensionalArrays {
public static void main(String[] args) {
    int marks[][]={{1,2,3},{4,5,6},{7,8,9}};

    for(int j=0;j<marks[0].length;j++) {
        for(int i=0;i<marks.length;i++) {

        }

    }
}

这就是我喜欢看输出的方式。

1 2 3
1 4 7
5 6
5 8
9

请帮忙。我完全迷失了:(

3 个答案:

答案 0 :(得分:1)

关键是在嵌套for循环中设置i = j

for (int j = 0; j < marks.length; j++) {
    for (int i = j; i < marks[j].length; i++) {
        System.out.print(marks[j][i] + " ");
    }
    System.out.println();

    if (j == marks.length - 1)
        break;
    for (int i = j; i < marks.length; i++) {
        System.out.print(marks[i][j] + " ");
    }
    System.out.println();
}

答案 1 :(得分:0)

这是一个可以打印您需要的解决方案。请注意,您可能需要对ArrayIndexOutOfBoundsException

执行某些操作
    for(int j=0;j<marks[0].length;j++) {
        System.out.println();
        for(int i=0;i<marks.length;i++) {
            try {
                System.out.print(marks[j][i+j]);
            } catch (ArrayIndexOutOfBoundsException e) {
                //do nothing
            }
        }
        System.out.println();
        for(int i=0;i<marks.length;i++) {
            try {
                if(j < marks.length-1) {
                    System.out.print(marks[i + j][j]);
                }
            } catch (ArrayIndexOutOfBoundsException e) {
                //do nothing
            }
        }
    }

答案 2 :(得分:0)

这很有效。很多令人困惑的我和j,但它输出你想要的东西。

public static void main(String[] args) 
{
    int marks[][]={{1,2,3},{4,5,6},{7,8,9}};

    for(int j = 0; j < marks[0].length; j++) 
    {
        //Row across
        for(int i = j; i < marks.length; i++) 
        {
            System.out.print(marks[j][i] + " ");
        }
        System.out.println();

        //Column down
        if (j != marks[0].length - 1) //so we don't print 9 twice
        {
            for(int i = j; i < marks.length; i++) 
            {
                System.out.print(marks[i][j] + " ");
            }
            System.out.println();
        }
    }
}