使用嵌入式for循环的NxN矩阵

时间:2013-03-04 17:17:37

标签: java loops for-loop matrix

我正在尝试使用嵌入式for循环创建NxN矩阵。我想我几乎拥有它,但我觉得我在循环中缺少一些东西。用户假设给我n,我根据该输入生成矩阵。

public static void printMatrix( int n ){



    for ( int i = 1; i < n; i++ ){
        System.out.println(" "+(int)(Math.random() + 0.5));

        for( int k = 1; k < n+1; k++)
            System.out.print(" "+(int)(Math.random() + 0.5));

    }
}

2 个答案:

答案 0 :(得分:2)

您只需要在第二个循环中使用print语句来打印“矩阵”。即,

public static void printMatrix(int n)
{
    for( int i = 1; i <= n; i++ )
    {
        for( int k = 1; k <= n; k++ )
            System.out.print("\t"+(int)(Math.random() + 0.5));
        System.out.println();
    }
}

实际上,在这里你并没有真正创建一个矩阵(意味着你没有将它存储在任何结构中,比如一个二维数组),而只是打印出n*n个随机值。

也这样做,

public static void printMatrix(int n)
{
    int[][] yourArray = new int[n][n];
    for( int i = 1; i <= n; i++ )
        for( int k = 1; k <= n; k++ )
            yourArray[i][k] = Math.random() + 0.5; //Populating the array.
    for( int i = 1; i <= n; i++ )
    {
        for( int k = 1; k <= n; k++ )
            System.out.print("\t"+yourArray[i][k]); //Reading data from the array.
        System.out.println();
    }
}

答案 1 :(得分:0)

您似乎正在尝试使用第一个for循环来控制矩阵中的行数。这是个好主意,但请看看你的第一个for循环

for ( int i = 1; i < n; i++)

会有多少次迭代?

现在看来你正在尝试使用第二个for循环打印一行的所有元素,这也是个好主意。唯一的问题是,在第二个for内打印行元素之前,您要使用新的行标记打印其他随机数。请记住,您已经在第二行内打印该行的所有元素,因此您无需在其前打印另一行。

如果您不希望在开始时以空行结束,请在打印整行后尝试打印新行标记。