我想在运行期间输入后打印锯齿状的数组元素。但是在打印时,我无法这样做,因为它打印了零。有人可以帮我纠正这个吗?
import java.util.Scanner;
import static java.lang.System.out;
import static java.lang.System.in;
class JaggedArrayDemo2
{
public static void main(String[] args)
{ Scanner input = new Scanner(in);
out.print("\nEnter the number of rows for the jagged array:\t");
int row_length = input.nextInt();
int column_length;
int r, c;
int[][] jar = new int[row_length][];
out.println("\nEnter the number of columns for each row:");
for (r=0; r<row_length ; r++)
{ out.print("jar["+r+"] = ");
column_length = input.nextInt();
jar[r] = new int[column_length];
}
out.println("\nEnter the individual elements:");
for(r = 0; r<jar.length; r++)
{ for(c = 0; c < jar[r].length; c++)
{ out.print("jar["+r+"]["+c+"] = ");
input.nextInt(); }
}
out.println("\nThe resultant jagged array is:");
for(r = 0; r<jar.length; r++)
{ for(c = 0; c < jar[r].length; c++)
{out.print(jar[r][c]+"\t");}
out.println("");
}
}
}
实际结果,存储在单个数组元素中的提示工作正常,但是对于读取的for循环没有任何更改,它将结果给出为0。
D:\JavaEx\ARRAYS>java JaggedArrayDemo2
Enter the number of rows for the jagged array: 3
Enter the number of columns for each row:
jar[0] = 4
jar[1] = 2
jar[2] = 3
Enter the individual elements:
jar[0][0] = 1
jar[0][1] = 2
jar[0][2] = 3
jar[0][3] = 4
jar[1][0] = 5
jar[1][1] = 6
jar[2][0] = 7
jar[2][1] = 8
jar[2][2] = 9
The resultant jagged array is:
0 0 0 0
0 0
0 0 0
预期结果,仅用于打印:
The resultant jagged array is:
1 2 3 4
5 6
7 8 9
在你的第二个for循环中,替换
input.nextInt(); //Only Accepting the value. Not storing it.
同
jar[r][c] = input.nextInt(); //Accepting and storing the value.
您是否考虑过实际存储值?
out.println("\nEnter the individual elements:");
for(r = 0; r<jar.length; r++)
{ for(c = 0; c < jar[r].length; c++)
{ out.print("jar["+r+"]["+c+"] = ");
input.nextInt(); }
}
...此代码仅询问用户输入,但它不对该输入执行任何操作。尝试使用以下代码将输入的数字存储在jar
数组中:
out.println("\nEnter the individual elements:");
for(r = 0; r<jar.length; r++)
{ for(c = 0; c < jar[r].length; c++)
{ out.print("jar["+r+"]["+c+"] = ");
jar[r][c] = input.nextInt(); }
}
以下将有效。在您的代码中,您不是将输入值存储在数组中。
用input.nextInt()
替换第二个for
循环中的jar[r][c] = input.nextInt()
package com.example;
import java.util.Scanner;
import static java.lang.System.in;
import static java.lang.System.out;
public class JaggedArrayDemo2 {
public static void main(String[] args) {
Scanner input = new Scanner(in);
out.print("\nEnter the number of rows for the jagged array:\t");
int row_length = input.nextInt();
int column_length;
int r, c;
int[][] jar = new int[row_length][];
out.println("\nEnter the number of columns for each row:");
for (r = 0; r < row_length; r++) {
out.print("jar[" + r + "] = ");
column_length = input.nextInt();
jar[r] = new int[column_length];
}
out.println("\nEnter the individual elements:");
for (r = 0; r < jar.length; r++) {
for (c = 0; c < jar[r].length; c++) {
out.print("jar[" + r + "][" + c + "] = ");
jar[r][c] = input.nextInt();
}
}
out.println("\nThe resultant jagged array is:");
for (r = 0; r < jar.length; r++) {
for (c = 0; c < jar[r].length; c++) {
out.print(jar[r][c] + "\t");
}
out.println("");
}
}
}
将输入存储在名为jar的二维数组中
更改
input.nextInt();
至
jar [r] [c] = input.nextInt();
这是更新的代码段
out.println("\nEnter the individual elements:");
for (r = 0; r < jar.length; r++) {
for (c = 0; c < jar[r].length; c++) {
out.print("jar[" + r + "][" + c + "] = ");
jar [r][c] = input.nextInt();
}
}
点击此处查看图片updated code snippet