0

我正在尝试使用嵌入式 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));

    }
}
4

2 回答 2

2

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

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();
    }
}
于 2013-03-04T17:25:21.960 回答
0

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

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

会有多少次迭代?

现在似乎您正在尝试使用第二个for循环打印一行的所有元素,这也是个好主意。唯一的问题是,在第二秒内打印行元素之前,您正在打印带有新行标记的附加随机数for。请记住,您已经在 second for 内打印了该行的所有元素,因此您不需要在它之前打印另一个元素。

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

于 2013-03-04T17:42:50.143 回答