【问题标题】:NxN matrix using embedded for loops [closed]使用嵌入式 for 循环的 NxN 矩阵 [关闭]
【发布时间】:2013-03-04 17:17:37
【问题描述】:

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

    }
}

【问题讨论】:

  • 你试过运行这个吗?你觉得缺少什么?
  • 是的,你错过了很多。我在这里看不到矩阵,只有两个循环。

标签: java loops for-loop matrix


【解决方案1】:

您只需要在第二个循环中使用 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();
    }
}

【讨论】:

    【解决方案2】:

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

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

    会有多少次迭代?

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 2019-02-27
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多