输入作为运行时输入后从锯齿状数组中检索元素

问题描述 投票:1回答:4

我想在运行期间输入后打印锯齿状的数组元素。但是在打印时,我无法这样做,因为它打印了零。有人可以帮我纠正这个吗?

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
java jagged-arrays
4个回答
2
投票

在你的第二个for循环中,替换

input.nextInt();        //Only Accepting the value. Not storing it.

jar[r][c] = input.nextInt();  //Accepting and storing the value.

1
投票

您是否考虑过实际存储值?

    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();    }
    }

1
投票

以下将有效。在您的代码中,您不是将输入值存储在数组中。

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("");
        }
    }
}


1
投票

将输入存储在名为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

© www.soinside.com 2019 - 2024. All rights reserved.