如何将数组的值添加到一个矩阵的列?

时间:2019-04-23 08:48:12

标签: java

我正在用Java做一些示例,尝试将数组的值添加到矩阵的列中。但是问题是我不知道为什么矩阵没有变化:

例如: 输入:

array  = 1 1 1 1 

matrix = 0 0 0 0
         0 0 0 0
         0 0 0 0
         0 0 0 0

输出应为:

1 0 0 0
1 0 0 0
1 0 0 0 
1 0 0 0

这是我的代码:

 public static void main(String[] args)
{
    int col = 0, row = 0;
    int [][]a = new int[4][4];
    int[]temp = new int[4];
    for( row = 0 ; row<4;row++)
    {
        for( col = 0 ; col<4 ;col++)
        {
            a[row][col] = 0;
        }
    }
    for(row = 0; row<4;row++)
    {
        temp[row] = 1;
    }

    while(col<4)
    {
        for(row = 0; row <4; row++)
        {
            a[row][col] = temp[row];

        }
        row+=1;
    }
    for( row = 0 ; row<4;row++)
    {
        System.out.print(temp[row] + " ");
    }
    System.out.println();
    for( row = 0 ; row<4;row++)
    {
        for( col = 0 ; col<4 ;col++)
        {
            System.out.print(a[row][col]+ "   ");
        }
        System.out.println();
    }


}

目前,矩阵仍为零。还有其他解决方法吗?

3 个答案:

答案 0 :(得分:0)

请注意,这里:

   while(col<4)
    {
        for(row = 0; row <4; row++)
        {
            a[row][col] = temp[row];

        }
        row+=1;
    }

您要添加row + = 1,但是循环是关于cols的。这可能是意外行为的原因之一。

同时,由于使用的迭代器与以前使用的迭代器相同,因此永远不会执行此循环。 (cols已经从firs循环中== 4)

答案 1 :(得分:0)

您需要更改

    col = 0;

    for (row = 0; row < 4; row++) {
        a[row][col] = temp[row];
    }

{{1}}

答案 2 :(得分:0)

我假设您将知道必须用数组中指定的值替换哪一列(在您的情况下,这是第一列)

无论如何,while循环中的值是不正确的,因为您使用的本地变量col与早先的for循环已经为4,所以while循环永远不会执行。 用对诸如so-

这样的变量值的一些更改来代替它
       int foo = 0;  //initialize a new variable for the loop cycles
       col = 0;      // set the value of col to the column you want to replace
       while (foo < 4)
        {
            for(row = 0; row <4; row++)
            {
                a[row][col] = temp[row];

            }
            row+=1;
            foo++;
        }

应该解决它。