繁体   English   中英

打印对称的二维数组

[英]printing a symmetrical 2d array

我想随机生成一个带有“*”符号的对称 10x10 表格,但它基本上都打印成两长行。 我知道我做错了什么,但我看得太仔细了,看不到问题所在。

public class Main {
    public static void main(String[]args) {

    int n = 10;
    char[][] array = new char[n][n];
    Random rd = new Random();
    for(int i = 0; i < n; i++) {
        for(int  j = 0; j < i; j++) {
            char value;
            if (Math.random()> .5) {
             value = '*';  
            }
            else {
                value = ' ';
            }
            array[i][j] = value;
            array[j][i] = value;
            System.out.print(array[i][j]);
            System.out.println();

            System.out.print(array[j][i]);

        }
    }
    
}

    
}```

我在这里看不到你的上下文。 但你可以试试这个

public class Main {
    public static void main(String[] args) {

        int n = 10;
        char[][] array = new char[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < i; j++) {
                char value;
                if (Math.random() > .5) {
                    value = '*';
                } else {
                    value = ' ';
                }
                array[i][j] = value;
                System.out.print(array[i][j]);

            }
            System.out.println();
        }
    }
}

您没有逐行打印,也缺少对角线元素。 修复这些和其他一些小的变化

        int n = 10;
        char[][] matrix = new char[n][n];
        Random rd = new Random();
        for(int i = 0; i < n; i++) {
            for(int  j = 0; j <= i; j++) {
                char value = rd.nextBoolean() ? '*':' ';
                matrix[i][j] = value;
                matrix[j][i] = value;
            }
        }

        for(char[] row : matrix) {
            System.out.println(row);
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM