Java 在循环中间创建一个新的起点
我必须从这两个阵列中创建一个新的二维阵列: CViEbee[][]Java 在循环中间创建一个新的起点,java,arrays,loops,Java,Arrays,Loops,我必须从这两个阵列中创建一个新的二维阵列: CViEbee[][] 1 2 3 4 1 2 2 1 3 2 4 1 Hdeg[] 1 9 9 9 9 1 新数组(QST)使用由1到6的数字组成的CViEbee元素(如果存在),然后使用它们访问Hdeg中的索引。它将如下所示: QST[][] 10 10 9 9 0 0 10 10 9 9 0 0 我试着写程序,但还是错了。代码如下: int y; d
1 2 3 4 1 2
2 1 3 2 4 1
Hdeg[]
1 9 9 9 9 1
新数组(QST
)使用由1到6的数字组成的CViEbee
元素(如果存在),然后使用它们访问Hdeg
中的索引。它将如下所示:
QST[][]
10 10 9 9 0 0
10 10 9 9 0 0
我试着写程序,但还是错了。代码如下:
int y;
double x = 0; //(Hdeg and QST is double)
int i,j,k,l;
for (i = 0; i < 2; i++) {
y = 1;
for (j = 0; j < 6; j++) {
if (CViEbee[i][j] == y) x = x + Hdeg[j];
k = 0;
if(j == 6) {
QST[i][k] = x;
System.out.print(QST[i][k]);
}
}
j = 0;
y++;
x = 0;
}
System.out.println();
inty;
双x=0//(Hdeg和QST为双倍)
int i,j,k,l;
对于(i=0;i<2;i++){
y=1;
对于(j=0;j<6;j++){
如果(CViEbee[i][j]==y)x=x+Hdeg[j];
k=0;
如果(j==6){
QST[i][k]=x;
系统输出打印(QST[i][k]);
}
}
j=0;
y++;
x=0;
}
System.out.println();
有人能帮我吗:)一些缺陷/问题
{
和}
可能缺失)if
语句的条件永远不会是true
,j
此时不能是6j=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();
}
int[][]cv=newint[][{{1,2,3,4,1,2},{2,1,3,2,4,1};
int[]hd=新的int[]{1,9,9,9,1};
int[][]q=新int[2][6];
对于(int行=0;行<2;行++){
对于(int x=1;x,我使用y来查找我想要在CViEbee中找到的数字(1到6),因此在找到CViEbee中的1之后,它会增加到2,依此类推。@Henni也不要在循环之外声明循环变量(int I=0;…),这将帮助您避免可能不太明显的问题
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();
}