Java从2d数组制作矢量。

时间:2017-03-02 20:51:37

标签: java arrays multidimensional-array vector

for (i=0; i<=9; i++)
                for (j=0; j<=9; j++) 
                    if (A[i][j]!=0) {
                    B[i] = A[i][j];
            }
            System.out.print("Vector  :   ");
            for(int i1 = 0; i1 < B.length; i1++){
                    System.out.print(B[i1] + " ");
            } array = true;
            System.out.println();

我有10x10阵列,55个值与0不同,我需要从这55个数字中得到一个向量。 问题是,使用这个代码,它只打印10个非0和其他45个零的数字。它从第10行获取所有值,而不是其他任何值。 我认为B [i]有问题,但我不确定。也许有人可以提供帮助?

3 个答案:

答案 0 :(得分:1)

问题来自B[i] = A[i][j];,因为B必须使用自己的索引k。索引i可能会被使用十次。

我建议B[k++] = A[i][j];

答案 1 :(得分:1)

int index = 0 ;
for (i=0; i<=9; i++)
                for (j=0; j<=9; j++) 
                    if (A[i][j]!=0) {
                    B[index] = A[i][j];
                    index++;
            }
            System.out.print("Vector  :   ");
            for(int i1 = 0; i1 < B.length; i1++){
                    System.out.print(B[i1] + " ");
            } array = true;
            System.out.println();

答案 2 :(得分:0)

你可能应该为矢量设置一个不同的计数器,因为在你的情况下会覆盖相同的i

for (int i=0, ctr=0; i<=9; i++)
   for (j=0; j<=9; j++) 
      if (A[i][j]!=0) {
          B[ctr++] = A[i][j];
      }
System.out.print("Vector  :   ");
for(int i1 = 0; i1 < B.length; i1++){
    System.out.print(B[i1] + " ");
} array = true;
System.out.println();