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]有问题,但我不确定。也许有人可以提供帮助?
答案 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();