这是我目前的代码:
public static void main(String[] args) {
int [][] twoD = new int [5][5];
/*for(int i = 0; i<5; i++){
for(int j = 0; j<5; j++){
System.out.print(twoD[i][j] + "");
}
}*/
}
}
我似乎无法做到。我感到困惑,我删除了测试/评论部分。请忽略它。
我的目标是获得这样的二维数组:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
然而,我只是没有得到它。我怎样才能得到这个结果?我是java的初学者。
答案 0 :(得分:2)
首先,您需要使用数据填充数组,并且您忘记了数组的每一行System.out.println
。
int [][] twoD = new int [5][5];
// populate array with data
for(int i = 0; i<5; i++){
for(int j = 0; j<5; j++){
twoD[i][j] = (j+1)*(i+1);
}
}
// print result
for(int i = 0; i<5; i++){
for(int j = 0; j<5; j++){
System.out.print(twoD[i][j]);
System.out.print(" ");
}
System.out.println();
}
答案 1 :(得分:2)
您还必须填充数据:
int[][] arr = new int [5][5];
for(int i = 0; i<5; i++){
for(int j = 0; j<5; j++){
arr[i][j] = (j+1)*(i+1);
}
}
要打印的代码是:
for(int i = 0; i<5; i++){
for(int j = 0; j<5; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
答案 2 :(得分:0)
你做得很好,每次第二次结束时你只需要跳线System.out.println();
for(int i = 0; i<5; i++){
for(int j = 0; j<5; j++){
System.out.print(twoD[i][j] + " ");
}
System.out.println();
}
答案 3 :(得分:0)
你是在正确的轨道上,for循环将打印出这样的数组,你需要做的就是在完成for(j)循环后打印一个新的行字符。但是,至少在您发布的代码片段中,您实际上并没有进行任何分配,因此您的数组中没有任何值可以打印,Java会将所有整数初始化为零。
答案 4 :(得分:0)
数组不只是自动填充递增的整数,而是数组的每个单元格将自动初始化为0,您必须设置希望数组包含的值。如果您愿意,可以使用测试类的概念来执行此操作,只需将2D数组的每个单元格设置为特定值即可。之后,您可以打印出阵列,确保在新行上打印阵列的每一行。例如:
public static void main(String[] args) {
int [][] twoD = new int [5][5];
int increment = 1;
for(int i = 0; i<5; i++){
for(int j = 0; j<5; j++){
twoD[i][j] = increment++;
}
}
for(i = 0; i<5; i++){
for(j = 0; j<5; j++){
System.out.print(twoD[i][j] + " ");
}
System.out.println();
}
}
第一组嵌套for循环将2D数组的每个单元格设置为您想要的递增整数(注意increment++
将首先将单元格设置为当前值increment
,然后在变量中加一个)。第二组嵌套for循环将根据需要打印出数组。
答案 5 :(得分:0)
参考此代码
int[][] twoD = new int[5][5];
// add values to array
for (int i = 0; i < 5; i++) {
int val = 1;
val = val + i;
for (int j = 0; j < 5; j++) {
twoD[i][j] = val * (j + 1);;
}
}
// Print array
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(twoD[i][j] + " ");
}
System.out.println();
}
答案 6 :(得分:0)
正如其他人指出你需要很好地打印它才能看到模式,i和j是你的数组的索引。但是,我看到你有一个很好的模式,所以只运行两个循环不会解决问题。 也许这样的事情会有所帮助(没有故意给出确切的答案)
int [][] twoD = new int [5][5];
int i;
// initialize
int c = 1; int j = 0;
for(c=1; c<5; c++) {
for( i = 1; i<=5; i++){
twoD[i-1][c-1] = c*c*i; twoD[c-1][i-1]=c*c*i;
}
}
for( i = 0; i<5; i++) {
for( j = 0; j<5; j++) {
System.out.print(twoD[i][j]);System.out.print(" " );
}
System.out.println("\n");
}