簡體   English   中英

Java從第2個數組做向量。

[英]Java making vector from 2d array.

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();

我有55個不同於0的值的10x10數組,我需要從這55個數字中得出一個向量。 問題是使用此代碼,它僅打印10個非0的數字和其他45個零。 它從第10行獲取所有值,僅此而已。 我認為B [i]出了點問題,但我不確定。 也許有人可以幫忙?

問題來自B[i] = A[i][j]; 因為B必須使用自己的索引,例如k 索引i可以使用十次。

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

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();

您可能應該對向量使用不同的計數器,因為在您的情況下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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM