问题描述
我试图在运行时输入后打印锯齿状的数组元素。 但是在打印时,我无法这样做,因为它正在打印零。 有人可以帮我纠正这个吗?
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
1楼
在您的第二个 for 循环中,替换
input.nextInt(); //Only Accepting the value. Not storing it.
和
jar[r][c] = input.nextInt(); //Accepting and storing the value.
2楼
你有没有想过实际存储这些值?
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(); }
}
3楼
以下将起作用。 在您的代码中,您没有将输入值存储在数组中。
替换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("");
}
}
}
4楼
将输入存储在名为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();
}
}
点击此处查看图片中
5楼
确切的解决方案:
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("");
}
}
}