在作为运行时输入输入后从交错数组中检索元素
retrieving elements from a jagged array after entering as runtime inputs
我试图在 运行 时间内输入后打印锯齿状的数组元素。但是在打印时,我无法这样做,因为它正在打印零。有人可以帮我改正吗?
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
您是否考虑过实际存储这些值?
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(); }
}
在第二个 for 循环中,替换
input.nextInt(); //Only Accepting the value. Not storing it.
和
jar[r][c] = input.nextInt(); //Accepting and storing the value.
以下将起作用。在您的代码中,您没有将输入值存储在数组中。
将第二个 for
循环中的 input.nextInt()
替换为 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
精确解:
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("");
}
}
}
我试图在 运行 时间内输入后打印锯齿状的数组元素。但是在打印时,我无法这样做,因为它正在打印零。有人可以帮我改正吗?
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
您是否考虑过实际存储这些值?
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(); }
}
在第二个 for 循环中,替换
input.nextInt(); //Only Accepting the value. Not storing it.
和
jar[r][c] = input.nextInt(); //Accepting and storing the value.
以下将起作用。在您的代码中,您没有将输入值存储在数组中。
将第二个 for
循环中的 input.nextInt()
替换为 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
精确解:
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("");
}
}
}