gpt4 book ai didi

java - Array Can't Initialised Properly 它缺少 4 和 8 为什么在下面的代码中?

转载 作者:行者123 更新时间:2023-11-29 04:27:51 26 4
gpt4 key购买 nike

在以下代码中,数组未正确初始化。 'else' 部分 a[ro][co]=i 中的语句在 for(int i:x) 循环内不起作用。

import java.io.*;
import java.util.*;

class Array {

int row,col;
int[][] a;
Array(int r, int c) { // constructor
this.row = r;
this.col = c;
this.a = new int[r][c];
}

void inItems(int... x) { // initialize the array
int ro = 0;
int co = 0;
int t;
for (int i : x) {
if (ro < this.row && co < this.col) {
a[ro][co] = i; // Works
co++;
}
else {
co = 0;
ro++;
a[ro][co] = i; // Does not work this line
}
}
}

void outItems() {
for (int r = 0; r < this.row; r++) {
for (int c = 0; c < this.col; c++) {
System.out.print(this.a[r][c] + " ");
}
System.out.println();
}
}

public static void main(String[] args) {
Array n = new Array(3, 3);
n.inItems(1, 2, 3, 4, 5, 6, 7, 8, 9);
n.outItems();
}
}

为什么元素 4 和 8 被跳过了?我执行了但它总是打印

1 2 3
5 6 7
9 0 0

请帮帮我

最佳答案

它们不会被跳过,它们会被覆盖,因为您忘记在 else 子句中增加 co

        if (ro < this.row && co < this.col) {
a[ro][co] = i;
co++;
} else {
co = 0;
ro++;
a[ro][co] = i;
co++; // you are missing this, so 2 numbers are written to a[1][0] and a[2][0]
}

关于java - Array Can't Initialised Properly 它缺少 4 和 8 为什么在下面的代码中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45294961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com