我必须从这两个数组中创建一个新的2D数组:
CViEbee [] []
1 2 3 4 1 2 2 1 3 2 4 1
Hdeg []
1 9 9 9 9 1
新数组(QST
)使用{1}个元素,这些元素包含1到6的数字(如果存在),然后使用它们来访问CViEbee
中的索引。它看起来像这样:
QST [] []
Hdeg
10 10 9 9 0 0
10 10 9 9 0 0
我试过写程序但它仍然是错的。这是代码:
QST[0][0] = 10 because, CViEbee[0][j]=1 if j=0 and j=4 then
QST[0][0] = Hdeg[0]+Hdeg[4] = 1+9 = 10
QST[0][5] = 0 because, CViEbee[0][j]=6 --> no CViEbee element = 6
QST[1][3] = 9 because, CViEbee[1][j] = 4 if j= 4 then
QST[1][3] = Hdeg[4]= 9
请有人帮助我,请:)
答案 0 :(得分:2)
一些缺陷/问题
{
且}
可能缺失)if
语句的条件永远不会是true
,j
此时不能为6 j=0
y
,因为它始终等于i+1
这是一个有效的解决方案。请注意,我稍微更改了数组的名称,但您应该能够抓住这个想法并在代码中使用它:
int[][] cv = new int[][]{{1,2,3,4,1,2},{2,1,3,2,4,1}};
int[] hd = new int[]{1,9,9,9,9,1};
int[][] q = new int[2][6];
for (int row = 0; row < 2; row++) {
for (int x = 1; x <= 6; x++) {
for (int col = 0; col < 6; col++) {
if (cv[row][col] == x) {
q[row][x-1] += hd[col];
}
}
}
}
for (int[] row:q) {
for (int col:row) {
System.out.print(col + "\t");
}
System.out.println();
}
不是最有效的解决方案(需要三个嵌套循环),但至少是一个起点;)
(顺便说一句:you can test it here in ideone)