**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
22小时前关门了。
Improve this question
我对编程很陌生,所以如果你不批评我,我会很高兴。我正在努力做作业,我在一个问题上卡住了。
public static int[] decimalToBinary(int number) {
int[] binary = new int[9];
int remainder = 0;
int i = 0;
while(i < binary.length) {
remainder = number % 2;
binary[binary.length - i - 1] = remainder;
number /= 2;
i++;
}
return binary;
}
我将此方法用作帮助器方法。
public static char[][] headsNtails(int number) {
int counter = 0;
int[] array = decimalToBinary(number);
int[][] decimalCoins = new int[3][3];
for(int i = 0; i < decimalCoins.length; i++) {
for(int j = 0; j < decimalCoins.length; j++) {
decimalCoins[i][j] = array[counter];
counter++;
}
}
char[][] charCoins = new char[3][3];
for(int i = 0; i < charCoins.length; i++) {
for(int j = 0; j < charCoins.length; j++) {
if(decimalCoins[i][j] == 1)
charCoins[i][j] = 'T';
else
charCoins[i][j] = 'H';
}
}
return charCoins;
}
当我在main
中调用headsNtails
方法来显示字符数组时,什么也没发生。我没有收到错误,但是当我调试时,我看到当我调用decimalToBinary
方法时程序卡住了。
public static void main(String[] args) {
char[][] charArray2D = headsNtails(7);
display2D(charArray2D);
}
我的main
方法是这样的。display2D
是一个显示二维数组中所有字符的方法。
public static void display(int[] array) {
for (int i : array) {
System.out.printf("%d\t", i);
}
System.out.println();
}
public static void display2D(char[][] array2D) {
for (char[] row : array2D) {
display(row);
}
System.out.println("--------------------------");
}
public static void display(double[] array) {
for (double i : array) {
System.out.printf("%.1f\t", i);
}
System.out.println();
}
public static void display(int[] array) {
for (int i : array) {
System.out.printf("%d\t", i);
}
System.out.println();
}
public static void display(char[] array) {
for (int i : array) {
System.out.printf("%c\t", i);
}
System.out.println();
}
1条答案
按热度按时间ehxuflar1#
为了能够遍历一个二维数组,你需要一个嵌套的for循环,第一个循环将遍历
rows
,第二个循环将遍历columns
,下面是你如何重写display2D
方法的例子。还要注意,
display
方法需要char
数组,因此需要将参数从int[]
更改为char[]