我正在尝试使用嵌入式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));
}
}
答案 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
内打印行元素之前,您要使用新的行标记打印其他随机数。请记住,您已经在第二行内打印该行的所有元素,因此您无需在其前打印另一行。
如果您不希望在开始时以空行结束,请在打印整行后尝试打印新行标记。